Brainy Prices — UAE Cost of Living
Server Details
Source-backed UAE costs: groceries, schools, housing, transport, utilities, telecom and relocation
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 26 tools
Most tools target distinct UAE cost-of-living subdomains, and descriptions explicitly draw boundaries such as costs_by_area vs housing_rents vs fixed_monthly_costs. A few cost-aggregation tools overlap conceptually, but start_here and the clarifying descriptions reduce misselection.
Every tool uses snake_case, which is consistent throughout. Most names are noun phrases rather than a strict verb_noun pattern, and a few (start_here, move_to_dubai) are action-oriented, but the convention remains readable and predictable.
At 26 tools the surface is large, but the server covers a broad cost-of-living domain across housing, transport, groceries, utilities, visas, taxes, and labour. Each tool appears to cover a distinct query type, though the count is near the upper bound and could feel heavy to an agent.
Coverage is broad: housing rents/sales, utilities, transport, groceries, schools, health insurance, visas, taxes, labour, and business setup are all represented, with data_sources and start_here aiding discoverability. Minor gaps remain around a true full household budget, childcare/dining/leisure costs, and some non-Dubai depth.
Available Tools
26 toolscommute_costCRead-onlyIdempotentInspect
Monthly/annual car commute cost (fuel+Salik), or published area routes. No parking.
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | No | special95 | |
| sort | No | distance_km | |
| cursor | No | ||
| to_area | No | ||
| from_area | No | ||
| page_size | No | ||
| to_hub_id | No | ||
| emirate_id | No | ||
| km_per_day | No | ||
| l_per_100km | No | ||
| days_per_week | No | ||
| salik_per_day | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered. The description adds useful scope context (cost components included, parking excluded, two operating modes), but says nothing about currency/units, whether results are estimates, or how the two modes interact with the parameter set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the primary output, which is good, but the second sentence is a cryptic fragment ('or published area routes') that reads as telegraphic rather than clarifying. Given the size of the parameter surface, the brevity borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 12 parameters, zero schema descriptions, and two distinct operating modes, the description is far too thin to let an agent pick the right inputs. An output schema exists so return values need not be explained, but the input-side and mode-selection guidance an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 12 parameters, so the schema names fields like l_per_100km, km_per_day, days_per_week, salik_per_day, and cursor without any explanation. The description mentions only fuel and Salik conceptually and gives no guidance on the numeric assumptions, sorting, or pagination parameters, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete output (monthly/annual car commute cost composed of fuel + Salik) and flags two modes (computed estimate vs. published area routes), which lets an agent grasp the resource. It does not name or contrast any sibling tool, so an agent cannot tell from the text alone how this differs from fuel_prices, transport_fares, or costs_by_area.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of which mode (calculator inputs vs. area/hub route lookup) applies under which conditions, and no prerequisites. Only the fragment 'No parking' hints at a scope exclusion, which is far from actionable routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
costs_by_areaCRead-onlyIdempotentInspect
Dubai areas ranked by monthly cost: rent, fees, bills (+school). Not full budgets.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| sort | No | total_monthly_aed | |
| cursor | No | ||
| zone_id | No | ||
| bedrooms | No | ||
| page_size | No | ||
| transport | No | ||
| min_contracts | No | ||
| property_type | No | ||
| include_school | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations fully cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds whatever coverage it does via the scope exclusion ('Not full budgets'), but it says nothing about result format, pagination via cursor, or what 'includes school' changes behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence, front-loaded with the resource and scope. No padding. It earns its brevity only because it is under-specified, not because it says too much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be explained, but for a 10-parameter, 0%-schema-coverage tool with three enums and pagination, the description omits nearly all invocation-critical context. It is broadly adequate as a one-line summary but not as a definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for ten parameters, three of them enums, and it provides essentially nothing (no explanation of sort fields, transport modes, min_contracts, page_size, cursor, or zone_id). One clause about school is the only parameter-adjacent value, far short of what 0% coverage demands.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (ranked) and resource (Dubai areas by monthly cost) and enumerates what's included (rent, fees, bills, +school) and excluded (not full budgets). It is distinguishable from costs_by_emirate by scope, though it doesn't explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Not full budgets' clause is a weak exclusion hint, but there is no stated when-to-use guidance, no reference to alternatives like costs_by_emirate or fixed_monthly_costs, and no mention of ten optional filters that an agent would need to know about to use this effectively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
costs_by_emirateBRead-onlyIdempotentInspect
Compare emirates: rent, utilities, schools. Non-Dubai rent unknown.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| page_size | No | ||
| emirate_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false), lowering the bar. The description adds a genuinely useful data-coverage caveat ('Non-Dubai rent unknown'), but says nothing about pagination behavior despite cursor/page_size parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded fragments with no filler: purpose first, caveat second. It is efficient, though the extreme terseness borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be described, and the read-only annotations cover safety. But with 0% parameter coverage and no usage guidance, the pagination contract (cursor/page_size) is left completely unaddressed for an agent that needs to page results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all three parameters. It only loosely implies the emirate dimension and leaves cursor and page_size entirely unexplained, adding little meaning beyond the enum in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Compare) and resource (emirates) plus the dimensions covered (rent, utilities, schools), which lets an agent distinguish it from costs_by_area or housing_rents. However, it never names those siblings, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus costs_by_area, housing_rents, or fixed_monthly_costs, and no prerequisites or exclusions. The 'Non-Dubai rent unknown' line is a data caveat, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_sourcesCRead-onlyIdempotentInspect
Where each number comes from: publishers, licences, dates, paused sources.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| status | No | ||
| page_size | No | ||
| source_id | No | ||
| dataset_id | No | ||
| license_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that the payload includes publishers, licences, dates and paused sources; it does not disclose pagination behavior despite a cursor/page_size schema or explain what 'unreadable' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no padding; the core content list comes first. It is efficient, though a sentence fragment rather than a complete statement of action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but with 6 undocumented parameters, no required fields, and no usage context, the definition is materially incomplete for an agent needing to decide when and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description carries the full explanatory burden. Its phrases ('licences', 'paused sources') only loosely gesture at license_status and status, and it says nothing about cursor, page_size, source_id or dataset_id, leaving the highest-value parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys the content of the resource (publishers, licences, dates, paused sources) and implicitly identifies it as a data-provenance tool, which distinguishes it from the numeric siblings like costs_by_area. However, it has no verb and reads as a fragment ('Where each number comes from'), so the agent must infer that this is a list/retrieve operation for source metadata rather than a data lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to call this tool versus the numeric siblings, nor any stated prerequisite (e.g. 'use to check provenance or find paused/restricted sources before trusting a figure'). The mention of 'paused sources' is a content hint, not usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dewaCRead-onlyIdempotentInspect
DEWA electricity/water: tariff slabs, or bill estimate from kwh (+water, VAT, fee).
| Name | Required | Description | Default |
|---|---|---|---|
| kwh | No | ||
| water_m3 | No | ||
| water_gallons | No | Imperial gallons. | |
| annual_rent_aed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine computational context — that the estimate bundles water, VAT, and a fee — which goes beyond the annotations. It does not explain behavior with zero parameters (none are required) or default assumptions, so it remains at an adequate-but-thin 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and modes lead immediately. Compression into telegraphic parentheticals like '(water, VAT, fee)' borders on cryptic but does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. However, with four parameters, zero required, and three of them undocumented, the description should clarify which inputs drive the 'tariff slab' lookup versus the 'bill estimate', and what annual_rent_aed contributes. That gap makes the definition incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (just 'Imperial gallons.' on water_gallons), so the description carries the burden. It mentions kwh and '(water, VAT, fee)' but never disambiguates water_m3 vs water_gallons, and annual_rent_aed — presumably the basis of a housing fee — is entirely unexplained despite being one of four parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (DEWA, expanding the cryptic name to electricity/water) and distinguishes two functional modes: tariff slabs and bill estimation from kWh. This lets an agent tell it apart from neighbouring cost calculators like fuel_prices or fixed_monthly_costs. It stops short of 5 because the mode distinction is compressed into an ambiguous 'or' construction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'tariff slabs, or bill estimate' phrasing gestures at two usage modes but never states the condition that selects one over the other, nor names any alternative sibling tool. There is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
end_of_service_gratuityARead-onlyIdempotentInspect
UAE private-sector end-of-service gratuity estimate (Decree-Law 33/2021 art. 51): basic wage + dates → amount or range; not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | ||
| start_date | Yes | ||
| unpaid_days | No | ||
| work_pattern | No | full-time | |
| basic_monthly_aed | Yes | ||
| total_monthly_wage_aed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| meta | No | |
| error | No | |
| links | No | |
| request_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description still adds real context beyond that: the output is an estimate that may be a single amount or a range, the result is jurisdiction- and statute-bound, and it explicitly disclaims legal advice. It does not mention rounding, assumptions, or failure modes, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads jurisdiction, scope, legal basis, input formula, and output shape with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. But for a 6-parameter financial calculator with 0% schema coverage, the description leaves key inputs (work_pattern, unpaid_days, total_monthly_wage_aed) undefined, which is a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 6 parameters, so the description carries the full burden and largely fails. It gestures at 'basic wage + dates' (mapping loosely to basic_monthly_aed, start_date, end_date) but says nothing about total_monthly_wage_aed, work_pattern, or unpaid_days — all of which materially change a gratuity calculation under the cited law.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise verb and resource ('UAE private-sector end-of-service gratuity estimate') plus the governing statute (Decree-Law 33/2021 art. 51), so the agent knows exactly what computation is being performed. It does not, however, distinguish itself from the sibling 'labour_calculator', which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'basic wage + dates → amount or range' formula implies the required inputs and therefore when the tool is applicable, and 'not legal advice' sets a scope boundary. There is no explicit when-to-use vs. when-not-to-use guidance and no named alternative, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fixed_monthly_costsBRead-onlyIdempotentInspect
Monthly fixed costs for a household profile, with assumptions. Not a full budget.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds modest value by signaling the figures are assumption-based estimates rather than exact figures and by excluding full-budget scope, but it says nothing about filters, pagination behavior, or data currency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, and the core resource is front-loaded. The trailing qualifier is slightly clipped but does not waste space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, for a read tool with a documented output the description omits any guidance on parameters or relationship to sibling cost tools, leaving clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the two parameters, and it does not. The 'profile' enum (single/couple/family4) and page_size are never mentioned or explained, leaving the agent to interpret 'family4' and pagination on its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (monthly fixed costs) and scopes it to a household profile, adding a useful boundary with 'Not a full budget.' However, it never distinguishes itself from cost-oriented siblings such as commute_cost, costs_by_area, or costs_by_emirate, so an agent cannot tell which cost tool is correct from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement and no named alternative among the many cost siblings. The phrase 'with assumptions' hints at output nature but gives no selection criteria, so the agent must infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
free_zone_companiesCRead-onlyIdempotentInspect
Free zone company setup: package prices, annual/monthly cost, visas.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | No | ||
| cursor | No | ||
| emirate | No | ||
| page_size | No | ||
| published | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds nothing beyond that: it does not explain filtering behavior, pagination via cursor, what the 'published' states mean, or the scope of results beyond the terse topic list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short, front-loaded fragment with no waste, but at five undocumented parameters it reads as under-specification rather than deliberate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The existence of an output schema means return values need not be described, but with five 0%-covered parameters, no usage guidance, and no behavioral detail, the definition is too thin for an agent to invoke it confidently with meaningful filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all five parameters (zone, cursor, emirate, page_size, published) are undocumented anywhere. The description mentions cost/visa concepts but never maps them to parameters nor explains the zone-vs-emirate distinction or the enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (free zone company setup) and the data it exposes (package prices, annual/monthly cost, visas), so an agent knows what it returns. However, there is no verb and no differentiation from siblings like costs_by_emirate or fixed_monthly_costs, leaving the exact operation (listing vs. comparing) implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and never mentions the alternatives among the many cost-related siblings. The agent must infer usage purely from the topic keywords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fuel_pricesCRead-onlyIdempotentInspect
UAE petrol/diesel prices this month and last, change, 50/70 L tank cost, history.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| sort | No | -month | |
| cursor | No | ||
| page_size | No | ||
| include_history | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it returns both this month and last, changes, and 50/70 L tank costs, which is useful behavioral context, though it ignores pagination behavior implied by the cursor and page_size parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single telegraphic sentence is dense but front-loads the resource and enumerates the payload without padding. It is appropriately sized, though the clipped style sacrifices readability for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with 0% schema description coverage, the description omits parameter semantics, pagination behavior, and return-format details. The output schema covers return values, but the parameter layer is entirely unexplained, leaving the definition under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the six parameters (to, from, sort, cursor, page_size, include_history) are undocumented in both schema and description. The description mentions history but does not connect it to the include_history flag, and says nothing about month filtering, sorting, or pagination. This is a significant gap the description needed to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (UAE petrol/diesel prices) and enumerates what it returns (monthly prices, change, tank costs, history). It is clear and distinct from siblings like commute_cost or transport_fares, though the terse telegraphic style leaves the exact verb ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. An agent cannot tell whether commute_cost or costs_by_emirate should be preferred for a fuel-related query, nor are any exclusions stated. Usage must be entirely inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_ratesBRead-onlyIdempotentInspect
AED exchange rates (CBUAE, dated). Not bank quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing data provenance (CBUAE official source) and a precision caveat ('not bank quotes'), but it says nothing about how 'dated' rates behave — whether a date range is returned, how stale they get, or whether a currency-specific series exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short fragments, front-loaded with the resource and free of filler. It is efficient but sits near the boundary of under-specification rather than true conciseness, since the brevity is bought at the cost of parameter and usage detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value shape need not be explained, and annotations cover the safety profile. What remains missing for an agent to call this correctly is the meaning/default of the single optional `currency` parameter and any positive usage trigger — gaps that a one-line addition could close.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it never mentions the `currency` parameter. Only implied: that AED is the base and the parameter selects the quote currency. It does not state that the parameter is optional, what the default/omitted behavior is, or that values must be ISO 4217 three-letter codes (the schema enforces the pattern but does not name it).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (AED exchange rates) plus a concrete provenance qualifier (CBUAE) and a data-freshness cue (dated), so the agent knows exactly what data this returns. There is no FX sibling to differentiate from, so the missing explicit routing is not a defect, but the terse noun-phrase style leaves the purpose slightly under-articulated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Not bank quotes' functions as an implicit when-not boundary, steering the agent away from using this for retail/bank counter rates. However, there is no positive trigger ('use for official reference/conversion rates'), no statement of update cadence, and no guidance on calling it versus just hardcoding a rate, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grocery_compare_listBRead-onlyIdempotentInspect
Cheapest store for a shopping list: per-store subtotals, delivery fees, minimums. Observed + labelled estimates.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| items | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description does add one genuine behavioral disclosure beyond the annotations — that results mix observed data with labelled estimates, which affects how much the agent should trust the numbers — but says nothing about coverage, freshness, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight fragments, front-loaded with the tool's core promise and zero filler. It is arguably over-compressed, but nothing in it is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out. For a simple two-parameter tool the definition is nearly adequate, but the total silence on the 'area' input leaves a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The description gestures at the 'items' list but gives no format or granularity guidance (product names? free text?), and the 'area' parameter is never mentioned, leaving half the input undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific outcome (cheapest store for a shopping list) plus the comparison dimensions it returns (subtotals, delivery fees, minimums), so the agent can distinguish it from grocery_products or grocery_stores. It stops short of explicitly differentiating itself from shopper_price_reports, which is the closest sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as grocery_products, grocery_stores or shopper_price_reports. The usage context is only weakly implied by 'for a shopping list'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grocery_productsBRead-onlyIdempotentInspect
Dubai supermarket prices: search by name; product_id for per-store pack/unit offers, dates, history. Not MOET.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| query | No | ||
| cursor | No | ||
| store_id | No | ||
| page_size | No | ||
| comparison | No | ||
| product_id | No | ||
| availability | No | ||
| available_only | No | ||
| include_offers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description adds genuine data-shape context (per-store pack/unit offers, dates, history), which tells the agent what kind of result to expect from the product_id path. It does not describe pagination, result caps, or what an empty match returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight, front-loaded with the resource, and every clause carries signal rather than filler. The telegraphic semicolon style is a little cryptic but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema excuses it from explaining return values, and annotations cover safety. Against that, a 10-parameter tool with 0% schema coverage is left with most of its surface undefined, and the relationship to other grocery/pricing tools is unresolved. Not enough for an agent to call this confidently beyond the trivial name-search case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, so the description carries the full burden and largely fails it. It hints at query (search by name), product_id, and indirectly offers/dates/history, but sort, cursor, store_id, page_size, comparison, availability, available_only and include_offers are undocumented in both places, and the exact/equivalent comparison mode in particular is non-obvious from the name alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource (Dubai supermarket prices) and the core operation (search by name, then look up a product_id for per-store offers/dates/history). It explicitly carves out territory from a sibling ("Not MOET"), though it never distinguishes itself from grocery_compare_list or grocery_stores, which also deal in grocery pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real usage split: use the name search to find products, use product_id to pull per-store pack/unit offers and price history. The "Not MOET" note is a genuine exclusion. But it never names the grocery_compare_list / grocery_stores alternatives an agent must choose between, so routing guidance is only partially resolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grocery_storesCRead-onlyIdempotentInspect
Grocery stores: delivery fees, free-delivery thresholds, minimum orders.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | name | |
| cursor | No | ||
| store_id | No | ||
| page_size | No | ||
| delivery_rule_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the field list – nothing about pagination via cursor/page_size, how results are ordered, or what filtering semantics apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the key data points front-loaded. It is efficient, though its brevity shades into under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters at 0% schema coverage and no annotations gap to lean on, the description should explain filtering, ordering, and pagination. An output schema exists so return values need not be described, but the input side is essentially unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden, but it never mentions sort, cursor, store_id, page_size, or delivery_rule_status. Only a loose thematic link exists between 'delivery' phrasing and the delivery_rule_status enum, leaving all five parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (grocery stores) and the data it carries (delivery fees, thresholds, minimums), so the domain is identifiable, but it uses a bare noun phrase with no verb stating what the tool actually does (list? search? compare?). It also does nothing to separate itself from siblings like grocery_compare_list or grocery_products, which plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of any alternative tool. An agent must guess whether this is the right sibling among grocery_products, grocery_compare_list, and ministry_shop_prices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_insuranceBRead-onlyIdempotentInspect
Dubai health insurance rules: who pays, basic plan band/benefits, fines. Not quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| emirate | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safe-read profile is covered. The description adds the content type (regulatory rules, not cost quotes), which is helpful, but says nothing about pagination or the breadth of the emirate enum, and the 'Dubai' framing understates the tool's scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded fragment with no filler: topic first, scope second, exclusion last. Terse enough to be efficient, though the fragment style borders on under-specification rather than deliberate brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only knowledge lookup with a rich output schema and safety annotations, the description only needs to convey topic and scope, which it largely does. The gap is the Dubai-only framing against a multi-emirate input, leaving the agent unsure whether non-Dubai queries are supported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters, and the description does not compensate: 'Dubai' implies the emirate is fixed, while the schema actually exposes a seven-value emirate enum. page_size (1-50, default 20) is never mentioned, so parameter meaning is actively obscured rather than clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Dubai health insurance rules) and itemizes what it covers: who pays, basic plan band/benefits, fines. This clearly separates it from sibling pricing tools like costs_by_emirate or residence_visas, though it never names a sibling to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trailing exclusion 'Not quotes' is a useful when-not signal, steering agents away from expecting premium pricing. However, there is no positive guidance on when this tool is the right choice versus related siblings, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
housing_rentsCRead-onlyIdempotentInspect
Rent in a Dubai area: registered annual/monthly medians and contract counts. Not listings.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| sort | No | median_annual_aed | |
| zone | No | ||
| cursor | No | ||
| zone_id | No | ||
| bedrooms | No | ||
| contract | No | ||
| page_size | No | ||
| min_contracts | No | ||
| property_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine context about the data source ('registered' medians and contract counts, not listings), which tells the agent the values are authoritative aggregates rather than live ads. It says nothing about pagination behavior or refresh cadence, so it goes only modestly beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and scope, and every clause carries information ('registered', 'medians', 'contract counts', 'Not listings'). The brevity borders on under-specification for a 10-parameter tool, but as structure and density it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover safety. However, for a 10-parameter, zero-description-coverage tool, the description supplies no parameter guidance and no usage context, leaving an agent unable to invoke it correctly without reading the schema cold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 10 parameters, so the description must compensate and largely does not. 'Annual/monthly medians and contract counts' loosely hints at the sort enum (median_annual_aed, -contracts) and min_contracts, but q, zone, zone_id, cursor, page_size, bedrooms, property_type, and contract are left entirely undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (registered rent medians and contract counts) for a specific scope (a Dubai area), and the 'Not listings' clause clarifies the data nature versus a listings tool. It does not name the closest sibling (housing_sales) explicitly, so an agent still has to infer the rent-vs-sale split rather than being routed by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no alternative named. The only routing signal is the negative 'Not listings', which implies an exclusion but never points the agent to housing_sales or explains when this tool is the right pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
housing_salesBRead-onlyIdempotentInspect
Sale prices by Dubai area: ready/off-plan registered medians. Not listings.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | median_price_aed | |
| zone | No | ||
| cursor | No | ||
| market | No | ||
| zone_id | No | ||
| bedrooms | No | ||
| page_size | No | ||
| property_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds that the data is registered medians and not listings, which sets data provenance expectations, but it doesn't cover pagination (cursor/page_size) or freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact—10 words—with the key distinction ('Not listings') front-loaded and no wasted clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters at 0% schema coverage and only 10 words, plus the absence of output schema details mentioned in the description, the entry is thin. It gives the core topic but not enough for an agent to confidently use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for 8 undocumented parameters. It mentions areas, markets (via 'ready/off-plan'), and sortable fields (median price), but does not explain bedrooms, property_type, boom/cursor, or page_size semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (sale prices by Dubai area) and what is delivered (registered medians), and explicitly disambiguates by excluding listings. It does not name the sibling housing_rents to differentiate, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Not listings' gives an implied when-not, steering agents away from listing-style data, but no explicit when-to-use-this-vs-alternatives guidance or mentions of sibling tools are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
labour_calculatorCRead-onlyIdempotentInspect
UAE labour law estimates (Decree-Law 33/2021): overtime pay, annual leave, final settlement. Not legal advice.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | ||
| day_hours | No | ||
| calculator | Yes | ||
| start_date | No | ||
| night_hours | No | ||
| notice_days | No | ||
| notice_cut_by | No | ||
| wages_owed_aed | No | ||
| leave_taken_days | No | ||
| basic_monthly_aed | Yes | ||
| unused_leave_days | No | ||
| notice_worked_days | No | ||
| total_monthly_wage_aed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds some value with the statutory basis (Decree-Law 33/2021) and the 'Not legal advice' disclaimer, which signals estimate-only output, but it says nothing about precision, currency assumptions, or what happens when mode-specific params are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no wasted words, front-loaded with scope and statute before the disclaimer. Appropriate size for a tool whose structured fields carry the rest, though the parenthetical citation slightly interrupts the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, but for a 13-parameter tool with three mutually exclusive calculation modes and only 2 required params, the description omits which optional parameters each mode consumes. An agent cannot tell from this description what to supply for 'final_settlement' versus 'annual_leave'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 13 parameters, so the description carries the full burden and largely fails it. It names the three calculator modes (which map to the required 'calculator' enum already defined in the schema) but never explains start_date/end_date, day_hours vs night_hours, notice_days vs notice_worked_days, or which parameters apply to which mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (UAE labour law estimates), the governing statute, and the three calculation modes covered: overtime pay, annual leave, final settlement. This distinguishes it from most siblings (grocery, housing, transport), though it fails to differentiate from the closely related end_of_service_gratuity tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, no prerequisites, and no routing among the three calculator modes. It never acknowledges that end_of_service_gratuity exists as a sibling whose scope overlaps with the final_settlement mode, which is exactly the kind of choice an agent needs help with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ministry_shop_pricesCRead-onlyIdempotentInspect
MOET-published shop prices of Dubai essentials by chain/category.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| sort | No | name | |
| cursor | No | ||
| category | No | ||
| chain_id | No | ||
| page_size | No | ||
| product_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds meaningful provenance ('MOET-published'), indicating official/curated data, but says nothing about pagination, result ordering, or refresh cadence despite cursor/page_size/sort parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. However, it is terse to the point of under-specification for a 7-parameter tool, so brevity here is only partly a virtue.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover safety. But with 7 undocumented parameters, no usage routing, and no pagination guidance, the definition leaves too much for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden, yet 'by chain/category' only loosely gestures at chain_id and category. Five other parameters (q, sort, cursor, page_size, product_id) get no explanation of semantics or format anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (shop prices of Dubai essentials), an authoritative source (MOET-published), and the query facets (by chain/category). An agent can understand what it returns, though it never explicitly distinguishes itself from siblings like grocery_products or shopper_price_reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no alternatives named. The 'by chain/category' phrasing hints at filtering dimensions but does not tell the agent when this tool is preferable to grocery_products, grocery_compare_list, or shopper_price_reports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mobile_internet_plansCRead-onlyIdempotentInspect
UAE mobile and home internet plans: VAT-inclusive price, data, contract.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | price_aed_per_month | |
| type | No | ||
| cursor | No | ||
| status | No | ||
| max_aed | No | ||
| plan_id | No | ||
| operator | No | ||
| page_size | No | ||
| min_data_gb | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds one genuinely useful behavioral fact — prices are VAT-inclusive — but says nothing about pagination (a cursor parameter exists), result volume, or freshness/ranking semantics implied by the 'status' enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with the domain front-loaded and zero filler. It is appropriately sized in form, though the brevity comes at the cost of substance rather than being a model of efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, but nine undocumented parameters and cursor-based pagination go unmentioned. For a filtered, paginated listing tool, the description leaves an agent unable to construct a correct call without guessing at parameter intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across nine parameters, so the description carries the full explanatory burden. It gestures at price and data, but gives no meaning for cursor, page_size, status (ranked/unverified/excluded), plan_id, operator, type, or the sort enum values — a significant gap when the schema documents nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and its domain ('UAE mobile and home internet plans') and hints at returned fields (price, data, contract), but contains no verb — an agent cannot tell whether the tool lists, searches, or compares plans. The domain is distinct from all siblings, so sibling confusion is unlikely, but the action itself is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, when not to, or what alternatives exist. Sibling tools cover entirely different domains (rents, fuel, visas), so no routing conflict exists, but the agent gets no guidance on filtering intent (e.g., mobile vs home, budget vs data-driven search) despite nine filter parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_to_dubaiCRead-onlyIdempotentInspect
Move to Dubai? Home vs Dubai net pay, taxes, FX, costs, savings. No country: models. Owner: household=business_owner + profit. Not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| iso2 | No | ||
| sort | No | name | |
| cursor | No | ||
| profit | No | ||
| status | No | ||
| country | No | ||
| variant | No | ||
| bedrooms | No | ||
| currency | No | ||
| household | No | ||
| page_size | No | ||
| gross_annual | No | ||
| property_type | No | ||
| spouse_employed | No | ||
| home_monthly_costs | No | ||
| dubai_gross_annual_aed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered structurally. The description adds two pieces of context beyond that: the 'No country: models' default behavior and the 'Not tax advice' disclaimer. Both are useful but compressed to the point of ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, but the compression produces fragments like 'No country: models' that are under-specified rather than concise. Key information (what the tool returns, how inputs combine) is absent, so brevity here costs comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a 17-parameter, zero-coverage tool with no required params, the description does not explain how the inputs drive the comparison or which fields are mutually exclusive, leaving the agent unable to construct a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 17 parameters, so the description carries the full explanatory burden. It touches only 'household=business_owner' and 'profit' (plus a passing mention of country), leaving 14 parameters such as gross_annual, dubai_gross_annual_aed, currency, area, and page_size entirely undefined in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description identify the domain (comparing home-country vs Dubai net pay, taxes, FX, costs, savings) but never state the operation. 'Move to Dubai?' is a rhetorical question rather than a verb+resource, so an agent cannot tell whether this computes, lists, or reports. It is distinguishable from siblings like tax_savings_by_country or labour_calculator only by inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The fragments 'No country: models' and 'Owner: household=business_owner + profit' hint at configuration cases but are too telegraphic to act on. There is no explicit statement of when to choose this over the 27 sibling tools, and no prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
residence_visasBRead-onlyIdempotentInspect
UAE residence visas by route: payer, requirements, fees, medical/insurance bands.
| Name | Required | Description | Default |
|---|---|---|---|
| route_id | No | ||
| page_size | No | ||
| include_common_fees | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety behavior is covered structurally. The description adds only the content scope (medical/insurance bands, payer, requirements) and says nothing about pagination, result size, or freshness, which the annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact, front-loaded phrase with no filler and the retrieval axis stated first. It is a verbless fragment, which slightly limits readability but not efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and all three inputs are optional. Still, with 0% parameter descriptions and no indication of how routes map to results or how common fees behave, the definition is only minimally sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. 'by route' gives route_id a purpose and the enum values are self-describing, but include_common_fees remains ambiguous (what counts as a 'common' fee) and page_size is only documented by its default/min/max in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (UAE residence visas) and the axis of retrieval (by route) plus the data dimensions returned (payer, requirements, fees, medical/insurance bands), so an agent knows what it will get. It never distinguishes itself from plausible siblings such as move_to_dubai or costs_by_emirate, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by route' implies the intended query pattern (select one of the route enum values), which is genuine but minimal usage guidance. There is no statement of when to prefer this over siblings like move_to_dubai, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schoolsBRead-onlyIdempotentInspect
Dubai school fees: KHDA tuition by grade/year, bus fees, distance. q: school name; near: zone; school_id: detail. Year ≠ Grade; uniforms paused.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | school name or part of it | |
| area | No | ||
| near | No | Zone, not school. | |
| sort | No | name | |
| grade | No | ||
| cursor | No | ||
| rating | No | ||
| page_size | No | ||
| radius_km | No | ||
| school_id | No | ||
| curriculum | No | ||
| max_fee_aed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety burden is offloaded. The description adds genuinely useful non-schema context — the KHDA source, that uniform data is currently paused, and the year/grade distinction. It says nothing about pagination via cursor or result limits, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: domain first, then parameter hints, then caveats. The telegraphic fragment style ('uniforms paused') saves space but slightly sacrifices clarity, and 'bus fees, distance' is awkwardly spliced into the domain sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered, but for a 12-parameter, 0-required query tool with 17% schema coverage the description is far too sparse. Most filters and the pagination parameter are left for the agent to infer from bare property names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% across 12 parameters, so the description must carry the load but does not. It clarifies only q, near (zone, not school), and school_id (detail mode), while area, sort, grade, cursor, rating, page_size, radius_km, curriculum, and max_fee_aed are undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource and data domain: Dubai (KHDA) school fees, tuition by grade/year, bus fees, distance. There is no sibling school tool in the list, so no explicit differentiation is needed, but the tool's own action ('look up/report school fees') is only implied by the noun phrase rather than stated with a verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives parameter-selection hints ('q: school name; near: zone; school_id: detail') and two important caveats ('Year ≠ Grade', 'uniforms paused'), which imply usage. However, it never states when to use this tool versus another, nor explains how the parameter modes interact (e.g. that school_id returns detail and conflicts with list-style filtering).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopper_price_reportsCRead-onlyIdempotentInspect
Community price reports by product/store, with date and promos.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| sort | No | -purchased_on | |
| cursor | No | ||
| store_id | No | ||
| page_size | No | ||
| product_id | No | ||
| purchased_since | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds one genuinely useful behavioral signal beyond that: the reports are 'community' sourced (i.e. user-submitted data of uncertain quality) and carry promo context. It says nothing about pagination behavior, though a cursor parameter exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is partly under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter, cursor-paginated query tool, the description omits how filtering, sorting, and paging interact. The existing output schema excuses it from describing return values, but the input surface and the crowd-sourced data caveat are not adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across seven parameters, so the description carries the full explanatory burden and largely fails it. It loosely hints at product/store and date filtering (product_id, store_id, purchased_since) but never explains area, sort semantics, cursor pagination, or page_size limits, and 'promos' is not even a parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely ('Community price reports') and its dimensions ('by product/store, with date and promos'), so an agent knows this returns crowd-sourced pricing observations rather than a catalog. It does not, however, contrast itself with nearby siblings like grocery_products, grocery_stores, or grocery_compare_list, so differentiation is only partial.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to reach for this tool versus grocery_compare_list or ministry_shop_prices, nor any prerequisite or exclusion guidance. Usage is only inferable from the resource noun, which leaves the agent to guess at routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_hereARead-onlyIdempotentInspect
Call first: coverage, the 5 most useful calls with ready arguments, data freshness and how to cite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds what the call surfaces (coverage, ready-to-use arguments, freshness, citation format), which is useful orientation context, but with an output schema present it needn't detail return values. Adequate but not rich beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the imperative 'Call first' followed by an enumerated payload list. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and zero parameters, the description need not explain return values or inputs. Rich annotations cover safety, and the description tells the agent what to expect and that it should be called first — sufficient for a bootstrapping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to disambiguate, and 'ready arguments' hints that the returned calls come pre-populated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: an orientation/onboarding payload containing coverage, the 5 most useful calls with ready arguments, data freshness, and citation guidance. 'Call first' makes its role distinct from the data-retrieval siblings, though the verb is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call first' is an explicit, unambiguous usage directive that no sibling claims, telling the agent when to invoke it relative to the other 26 tools. It does not state any when-not conditions, but for a universal entry point those are largely unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tax_savings_by_countryCRead-onlyIdempotentInspect
Tax saved by moving to Dubai, per country, typical pay. Not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| country | No | ||
| household | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety and caching profile is covered. The description usefully discloses the 'typical pay' calculation assumption, which the annotations cannot express, but says nothing about result basis, currency, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the metric and scope, with the disclaimer last. Nothing is padded, though the extreme terseness pushes nuance into implication rather than statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. However, for a parameterized analytics tool with four undocumented inputs, a pagination cursor, and a country filter, the description is too thin to let an agent call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning for any of the four parameters. The household enum (employee vs business_owner) materially changes the answer yet is unexplained, and cursor/page_size pagination behavior is left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific metric (tax saved by moving to Dubai), a granularity (per country), and an assumption (typical pay), so an agent knows exactly what the tool returns. It does not explicitly distinguish itself from the sibling move_to_dubai, which is the nearest neighbor, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as move_to_dubai or costs_by_emirate. 'Not tax advice' is a liability disclaimer, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transport_faresBRead-onlyIdempotentInspect
Taxi fare estimate, or metro/bus fares, parking and toll tariffs. Not app quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| km | No | ||
| mode | Yes | ||
| booking | No | ||
| emirate | No | ||
| page_size | No | ||
| to_sharjah | No | ||
| operator_id | No | ||
| wait_minutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description's only added behavioral context is the "not app quotes" scope caveat; it says nothing about whether figures are official tariffs versus estimates, or how paging behaves despite a page_size parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core resource list and ending with the exclusion – no filler. It is arguably too terse for an 8-parameter tool, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a tool with 8 inputs, 4 enums and 0% schema coverage, the description is far too thin. An agent cannot tell what booking, operator_id (salik/darb), wait_minutes or to_sharjah do from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 8 parameters, so the description must carry the burden and largely does not. It loosely glosses the mode enum (taxi / metro-bus / parking / tolls) but leaves km, booking, emirate, operator_id, to_sharjah, wait_minutes and page_size entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resources it covers – taxi fares, metro/bus fares, parking, tolls – which maps cleanly onto the mode enum and tells an agent what kind of result to expect. It stops short of naming or contrasting with any sibling (commute_cost, fuel_prices, costs_by_area), so it is clear but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Not app quotes" is a genuine exclusion that steers the agent away from ride-hailing app pricing, which is useful. However there is no positive statement of when to pick this tool over commute_cost or fuel_prices, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Removed
today
1 tool update
- Added
labour_calculator
26 tool updates
- Changed
commute_cost1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
costs_by_area1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
costs_by_emirate1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
data_sources1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
dewa1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Added
end_of_service_gratuity - Changed
fixed_monthly_costs1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
free_zone_companies1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
fuel_prices1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
fx_rates1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
grocery_compare_list1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
grocery_products1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
grocery_stores1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
health_insurance1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
housing_rents1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
housing_sales1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
ministry_shop_prices1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
mobile_internet_plans1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
move_to_dubai1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
residence_visas1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
schools1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
shopper_price_reports1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
start_here1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
tax_savings_by_country1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
today1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
transport_fares1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
2 tool updates
- Added
ministry_shop_prices - Removed
official_shop_prices
1 tool update
- Added
start_here
5 tool updates
- Changed
fixed_monthly_costs2 fields changed- added
Output schema / $defs / TransportOptionAdded value: +{ + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "missing_parts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "type": "number" + }, + "never_default": { + "type": "boolean" + }, + "not_included": { + "items": { + "type": "string" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "parts": { + "items": { + "additionalProperties": false, + "properties": { + "assumption": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "flag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "monthly_aed_with_vat": { + "type": [ + "number", + "null" + ] + }, + "notice": { + "type": "string" + }, + "source": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "status": { + "type": "string" + }, + "vat": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "vat_basis": { + "type": "string" + } + }, + "required": [ + "id", + "monthly_aed", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "second_commuter": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "status": { + "type": "string" + } + }, + "required": [ + "monthly_aed", + "status", + "parts" + ], + "type": "object" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": true, - "required": [ - "month", - "groceries_reference", - "not_included" - ], - "type": "object" - }, - "data": { - "items": { - "additionalProperties": false, - "properties": { - "covers": { - "type": "string" - }, - "fixed_monthly_costs_aed": { - "type": [ - "number", - "null" - ] - }, - "label": { - "type": "string" - }, - "lines": { - "items": { - "additionalProperties": false, - "properties": { - "assumption": { - "type": [ - "string", - "null" - ] - }, - "attribution": { - "type": "string" - }, - "basis": { - "additionalProperties": false, - "properties": { - "note": { - "type": "string" - }, - "observed_from": { - "type": "string" - }, - "observed_to": { - "type": "string" - }, - "source_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "source_ids", - "note" - ], - "type": "object" - }, - "coverage": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } - ] - }, - "type": "array" - }, - "dependents": { - "type": "integer" - }, - "doubtful": { - "type": "boolean" - }, - "group_coverage": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "kind": { - "enum": [ - "estimate", - "observed" - ] - }, - "label": { - "type": "string" - }, - "line_id": { - "enum": [ - "rent", - "housing_fee", - "dewa", - "transport", - "mobile", - "internet", - "school", - "groceries", - "health_insurance" - ] - }, - "method": { - "const": "fao_supply_x_basket_prices" - }, - "missing_groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "per_dependent_monthly_aed": { - "$ref": "#/$defs/HouseholdMonthlyRange" - }, - "persons": { - "type": "integer" - }, - "range_aed": { - "$ref": "#/$defs/HouseholdMonthlyRange" - }, - "source": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "period_label": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "name", - "url", - "period_label" - ], - "type": [ - "object", - "null" - ] - }, - "use_condition": { - "const": "Do not show this figure with affiliate links, store recommendations or a shopping cart (FAO additional terms of use)." - }, - "variants": { - "additionalProperties": false, - "properties": { - "spouse_employed": { - "additionalProperties": false, - "properties": { - "dependents": { - "type": "integer" - }, - "monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "range_aed": { - "$ref": "#/$defs/HouseholdMonthlyRange" - } - }, - "required": [ - "dependents", - "monthly_aed", - "range_aed" - ], - "type": "object" - } - }, - "required": [ - "spouse_employed" - ], - "type": "object" - } - }, - "required": [ - "line_id", - "label", - "monthly_aed", - "range_aed", - "assumption", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "profile_id": { - "enum": [ - "single", - "couple", - "family4" - ] - }, - "provenance": { - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" - }, - "with_estimates_aed": { - "additionalProperties": false, - "properties": { - "high": { - "type": "number" - }, - "low": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "low", - "high" - ], - "type": "object" - } - }, - "required": [ - "profile_id", - "label", - "covers", - "fixed_monthly_costs_aed", - "lines", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "links": { - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" - }, - "meta": { - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": true, + "required": [ + "month", + "groceries_reference", + "not_included" + ], + "type": "object" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "covers": { + "type": "string" + }, + "fixed_monthly_costs_aed": { + "type": [ + "number", + "null" + ] + }, + "label": { + "type": "string" + }, + "lines": { + "items": { + "additionalProperties": false, + "properties": { + "assumption": { + "type": [ + "string", + "null" + ] + }, + "attribution": { + "type": "string" + }, + "basis": { + "additionalProperties": false, + "properties": { + "note": { + "type": "string" + }, + "observed_from": { + "type": "string" + }, + "observed_to": { + "type": "string" + }, + "source_ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "source_ids", + "note" + ], + "type": "object" + }, + "coverage": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + } + ] + }, + "type": "array" + }, + "dependents": { + "type": "integer" + }, + "doubtful": { + "type": "boolean" + }, + "doubtful_parts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "group_coverage": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "kind": { + "enum": [ + "estimate", + "observed" + ] + }, + "label": { + "type": "string" + }, + "line_id": { + "enum": [ + "rent", + "housing_fee", + "dewa", + "transport", + "mobile", + "internet", + "school", + "groceries", + "health_insurance" + ] + }, + "method": { + "const": "fao_supply_x_basket_prices" + }, + "missing_groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "missing_parts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "options": { + "additionalProperties": false, + "properties": { + "default": { + "const": "own_car" + }, + "no_car": { + "$ref": "#/$defs/TransportOption" + }, + "own_car": { + "$ref": "#/$defs/TransportOption" + } + }, + "required": [ + "default", + "own_car", + "no_car" + ], + "type": "object" + }, + "per_dependent_monthly_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "persons": { + "type": "integer" + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "second_commuter_not_included": { + "type": "boolean" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "period_label": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "url", + "period_label" + ], + "type": [ + "object", + "null" + ] + }, + "status": { + "type": "string" + }, + "use_condition": { + "const": "Do not show this figure with affiliate links, store recommendations or a shopping cart (FAO additional terms of use)." + }, + "variants": { + "additionalProperties": false, + "properties": { + "spouse_employed": { + "additionalProperties": false, + "properties": { + "dependents": { + "type": "integer" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + } + }, + "required": [ + "dependents", + "monthly_aed", + "range_aed" + ], + "type": "object" + } + }, + "required": [ + "spouse_employed" + ], + "type": "object" + } + }, + "required": [ + "line_id", + "label", + "monthly_aed", + "range_aed", + "assumption", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "profile_id": { + "enum": [ + "single", + "couple", + "family4" + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "with_estimates_aed": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + } + }, + "required": [ + "profile_id", + "label", + "covers", + "fixed_monthly_costs_aed", + "lines", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
housing_rents3 fields changed- removed
Output schema / $defs / HousingZoneRemoved value: -{ - "additionalProperties": false, - "properties": { - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "communities_ar": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "name_ar": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rent_contracts": { - "type": [ - "integer", - "null" - ] - }, - "sale_transactions": { - "type": [ - "integer", - "null" - ] - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "name_ar", - "communities", - "communities_ar", - "rent_contracts", - "sale_transactions", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / SaleMedianRemoved value: -{ - "additionalProperties": false, - "properties": { - "bedrooms": { - "type": "integer" - }, - "market": { - "enum": [ - "ready", - "off_plan" - ] - }, - "median_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "median_price_aed": { - "type": [ - "number", - "null" - ] - }, - "p25_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "p25_price_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "p75_price_aed": { - "type": [ - "number", - "null" - ] - }, - "property_type": { - "enum": [ - "apartment", - "villa" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "transactions": { - "type": [ - "integer", - "null" - ] - }, - "zone_id": { - "type": "string" - }, - "zone_name": { - "type": "string" - } - }, - "required": [ - "zone_id", - "zone_name", - "property_type", - "bedrooms", - "market", - "transactions", - "median_price_aed", - "p25_price_aed", - "p75_price_aed", - "median_aed_per_sqft", - "p25_aed_per_sqft", - "p75_aed_per_sqft", - "provenance" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "rents": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone": { - "$ref": "#/$defs/HousingZone" - } - }, - "required": [ - "zone", - "rents", - "sales" - ], - "type": "object" - }, - "data": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/HousingZone" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "communities_ar": { - "items": { - "type": "string" - }, - "type": "array" - }, - "method": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "name_ar": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rent_contracts": { - "type": [ - "integer", - "null" - ] - }, - "rents": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "sale_transactions": { - "type": [ - "integer", - "null" - ] - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "name_ar", - "communities", - "communities_ar", - "rent_contracts", - "sale_transactions", - "open_in_browser", - "rents", - "sales", - "method", - "provenance" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": true, + "required": [ + "zone", + "rents", + "sales" + ], + "type": "object" + }, + "data": { + "items": { + "$ref": "#/$defs/RentMedian" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "communities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "communities_ar": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "name_ar": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rent_contracts": { + "type": [ + "integer", + "null" + ] + }, + "sale_transactions": { + "type": [ + "integer", + "null" + ] + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "name_ar", + "communities", + "communities_ar", + "rent_contracts", + "sale_transactions", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "communities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "communities_ar": { + "items": { + "type": "string" + }, + "type": "array" + }, + "method": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "name_ar": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rent_contracts": { + "type": [ + "integer", + "null" + ] + }, + "rents": { + "items": { + "$ref": "#/$defs/RentMedian" + }, + "type": "array" + }, + "sale_transactions": { + "type": [ + "integer", + "null" + ] + }, + "sales": { + "items": { + "additionalProperties": false, + "properties": { + "bedrooms": { + "type": "integer" + }, + "market": { + "enum": [ + "ready", + "off_plan" + ] + }, + "median_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "median_price_aed": { + "type": [ + "number", + "null" + ] + }, + "p25_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "p25_price_aed": { + "type": [ + "number", + "null" + ] + }, + "p75_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "p75_price_aed": { + "type": [ + "number", + "null" + ] + }, + "property_type": { + "enum": [ + "apartment", + "villa" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "transactions": { + "type": [ + "integer", + "null" + ] + }, + "zone_id": { + "type": "string" + }, + "zone_name": { + "type": "string" + } + }, + "required": [ + "zone_id", + "zone_name", + "property_type", + "bedrooms", + "market", + "transactions", + "median_price_aed", + "p25_price_aed", + "p75_price_aed", + "median_aed_per_sqft", + "p25_aed_per_sqft", + "p75_aed_per_sqft", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "name_ar", + "communities", + "communities_ar", + "rent_contracts", + "sale_transactions", + "open_in_browser", + "rents", + "sales", + "method", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
housing_sales4 fields changed- removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / RentSplitRemoved value: -{ - "additionalProperties": false, - "properties": { - "contracts": { - "type": [ - "integer", - "null" - ] - }, - "median_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "p25_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_annual_aed": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "contracts", - "median_annual_aed", - "p25_annual_aed", - "p75_annual_aed" - ], - "type": "object" -} - removed
Output schema / $defs / SaleMedianRemoved value: -{ - "additionalProperties": false, - "properties": { - "bedrooms": { - "type": "integer" - }, - "market": { - "enum": [ - "ready", - "off_plan" - ] - }, - "median_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "median_price_aed": { - "type": [ - "number", - "null" - ] - }, - "p25_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "p25_price_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_aed_per_sqft": { - "type": [ - "number", - "null" - ] - }, - "p75_price_aed": { - "type": [ - "number", - "null" - ] - }, - "property_type": { - "enum": [ - "apartment", - "villa" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "transactions": { - "type": [ - "integer", - "null" - ] - }, - "zone_id": { - "type": "string" - }, - "zone_name": { - "type": "string" - } - }, - "required": [ - "zone_id", - "zone_name", - "property_type", - "bedrooms", - "market", - "transactions", - "median_price_aed", - "p25_price_aed", - "p75_price_aed", - "median_aed_per_sqft", - "p25_aed_per_sqft", - "p75_aed_per_sqft", - "provenance" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "rents": { - "items": { - "additionalProperties": false, - "properties": { - "bedrooms": { - "type": "integer" - }, - "contracts": { - "type": "integer" - }, - "display_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "median_annual_aed": { - "type": "number" - }, - "median_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "new_contracts": { - "anyOf": [ - { - "$ref": "#/$defs/RentSplit" - }, - { - "type": "null" - } - ] - }, - "p25_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "property_type": { - "enum": [ - "apartment", - "villa" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "renewals": { - "anyOf": [ - { - "$ref": "#/$defs/RentSplit" - }, - { - "type": "null" - } - ] - }, - "zone_id": { - "type": "string" - }, - "zone_name": { - "type": "string" - } - }, - "required": [ - "zone_id", - "zone_name", - "property_type", - "bedrooms", - "contracts", - "median_annual_aed", - "p25_annual_aed", - "p75_annual_aed", - "median_monthly_aed", - "new_contracts", - "renewals", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone": { - "additionalProperties": false, - "properties": { - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "communities_ar": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "name_ar": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rent_contracts": { - "type": [ - "integer", - "null" - ] - }, - "sale_transactions": { - "type": [ - "integer", - "null" - ] - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "name_ar", - "communities", - "communities_ar", - "rent_contracts", - "sale_transactions", - "open_in_browser", - "provenance" - ], - "type": "object" - } - }, - "required": [ - "zone", - "rents", - "sales" - ], - "type": "object" - }, - "data": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "links": { - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" - }, - "meta": { - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": true, + "required": [ + "zone", + "rents", + "sales" + ], + "type": "object" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "bedrooms": { + "type": "integer" + }, + "market": { + "enum": [ + "ready", + "off_plan" + ] + }, + "median_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "median_price_aed": { + "type": [ + "number", + "null" + ] + }, + "p25_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "p25_price_aed": { + "type": [ + "number", + "null" + ] + }, + "p75_aed_per_sqft": { + "type": [ + "number", + "null" + ] + }, + "p75_price_aed": { + "type": [ + "number", + "null" + ] + }, + "property_type": { + "enum": [ + "apartment", + "villa" + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "transactions": { + "type": [ + "integer", + "null" + ] + }, + "zone_id": { + "type": "string" + }, + "zone_name": { + "type": "string" + } + }, + "required": [ + "zone_id", + "zone_name", + "property_type", + "bedrooms", + "market", + "transactions", + "median_price_aed", + "p25_price_aed", + "p75_price_aed", + "median_aed_per_sqft", + "p25_aed_per_sqft", + "p75_aed_per_sqft", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
move_to_dubai9 fields changed- added
Output schema / $defs / BusinessDubaiScenarioAdded value: +{ + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "corporate_tax_aed": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": "number" + }, + "saving_annual": { + "type": "number" + }, + "saving_annual_aed": { + "type": "number" + } + }, + "required": [ + "corporate_tax_aed", + "corporate_tax", + "net_annual", + "net_annual_aed", + "effective_rate", + "saving_annual", + "saving_annual_aed" + ], + "type": "object" +} - added
Output schema / $defs / HouseholdEstimateLine / properties / doubtful_partsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / $defs / HouseholdEstimateLine / properties / id / enumPrevious value: -[ - "groceries", - "healthInsurance" -]New value: +[ + "groceries", + "healthInsurance", + "transport" +] - added
Output schema / $defs / HouseholdEstimateLine / properties / missing_partsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / HouseholdEstimateLine / properties / optionsAdded value: +{ + "additionalProperties": false, + "properties": { + "default": { + "const": "own_car" + }, + "no_car": { + "$ref": "#/$defs/TransportOption" + }, + "own_car": { + "$ref": "#/$defs/TransportOption" + } + }, + "required": [ + "default", + "own_car", + "no_car" + ], + "type": "object" +} - added
Output schema / $defs / HouseholdEstimateLine / properties / second_commuter_not_includedAdded value: +{ + "type": "boolean" +} - added
Output schema / $defs / HouseholdEstimateLine / properties / statusAdded value: +{ + "type": "string" +} - added
Output schema / $defs / TransportOptionAdded value: +{ + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "missing_parts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "type": "number" + }, + "never_default": { + "type": "boolean" + }, + "not_included": { + "items": { + "type": "string" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "parts": { + "items": { + "additionalProperties": false, + "properties": { + "assumption": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "flag": { + "type": "string" + }, + "id": { + "type": "string" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "monthly_aed_with_vat": { + "type": [ + "number", + "null" + ] + }, + "notice": { + "type": "string" + }, + "source": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "status": { + "type": "string" + }, + "vat": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "vat_basis": { + "type": "string" + } + }, + "required": [ + "id", + "monthly_aed", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "second_commuter": { + "additionalProperties": true, + "type": [ + "object", + "null" + ] + }, + "status": { + "type": "string" + } + }, + "required": [ + "monthly_aed", + "status", + "parts" + ], + "type": "object" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "assumptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "country": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variant": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "variant_label": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "iso2", - "name", - "currency", - "tax_year", - "tax_year_period", - "variant", - "variant_label" - ], - "type": "object" - }, - "country_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "disclaimer": { - "type": "string" - }, - "dubai": { - "additionalProperties": false, - "properties": { - "gross_annual_aed": { - "type": "number" - }, - "income_tax_aed": { - "const": 0 - }, - "net_annual_aed": { - "type": "number" - }, - "net_monthly_aed": { - "type": "number" - } - }, - "required": [ - "gross_annual_aed", - "net_annual_aed", - "net_monthly_aed", - "income_tax_aed" - ], - "type": "object" - }, - "dubai_monthly_costs_aed": { - "additionalProperties": false, - "properties": { - "groceries": { - "type": [ - "number", - "null" - ] - }, - "health": { - "type": [ - "number", - "null" - ] - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "school": { - "type": [ - "number", - "null" - ] - }, - "transport": { - "type": [ - "number", - "null" - ] - }, - "utilities": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ], - "type": "object" - }, - "estimate": { - "const": true - }, - "fx": { - "additionalProperties": false, - "properties": { - "aed_per_unit": { - "type": [ - "number", - "null" - ] - }, - "rates_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "aed_per_unit", - "rates_on", - "source" - ], - "type": "object" - }, - "groceries_basket": { - "additionalProperties": false, - "properties": { - "estimated_aed": { - "additionalProperties": false, - "properties": { - "high_aed": { - "type": "number" - }, - "low_aed": { - "type": "number" - }, - "value_aed": { - "type": "number" - } - }, - "required": [ - "value_aed", - "low_aed", - "high_aed" - ], - "type": "object" - }, - "items": { - "type": "integer" - }, - "items_estimated": { - "type": "integer" - }, - "items_observed": { - "type": "integer" - }, - "items_unknown": { - "type": "integer" - }, - "note": { - "type": "string" - }, - "observed_aed": { - "type": "number" - } - }, - "required": [ - "items", - "observed_aed", - "estimated_aed", - "items_observed", - "items_estimated", - "items_unknown", - "note" - ], - "type": "object" - }, - "groceries_estimate": { - "$ref": "#/$defs/HouseholdEstimateLine" - }, - "gross_annual": { - "additionalProperties": false, - "properties": { - "aed": { - "type": [ - "number", - "null" - ] - }, - "amount": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "aed" - ], - "type": "object" - }, - "health_insurance": { - "$ref": "#/$defs/HouseholdEstimateLine" - }, - "home": { - "additionalProperties": false, - "properties": { - "breakdown": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "number" - }, - "component_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "component_id", - "label", - "kind", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "currency": { - "type": "string" - }, - "effective_rate": { - "type": "number" - }, - "effective_rate_percent": { - "type": "number" - }, - "income_tax": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "net_monthly": { - "type": "number" - }, - "social_contributions": { - "type": "number" - } - }, - "required": [ - "currency", - "net_annual", - "net_monthly", - "income_tax", - "social_contributions", - "effective_rate", - "breakdown", - "net_annual_aed" - ], - "type": "object" - }, - "household": { - "additionalProperties": false, - "properties": { - "children": { - "type": "integer" - }, - "status": { - "enum": [ - "single", - "married" - ] - } - }, - "required": [ - "status", - "children" - ], - "type": "object" - }, - "household_type": { - "const": "business_owner" - }, - "left_over_after_fixed_costs_aed": { - "type": "number" - }, - "left_over_after_groceries_aed": { - "additionalProperties": false, - "properties": { - "high": { - "type": "number" - }, - "low": { - "type": "number" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "low", - "high" - ], - "type": "object" - }, - "not_modelled": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "owner_comparison": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "dubai": { - "additionalProperties": false, - "properties": { - "free_zone": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "corporate_tax_aed": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": "number" - }, - "saving_annual": { - "type": "number" - }, - "saving_annual_aed": { - "type": "number" - } - }, - "type": "object" - }, - "free_zone_condition": { - "type": "string" - }, - "mainland": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "corporate_tax_aed": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": "number" - }, - "saving_annual": { - "type": "number" - }, - "saving_annual_aed": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "home": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "distributed_profit": { - "type": "number" - }, - "dividend_tax": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "total_tax": { - "type": "number" - } - }, - "type": "object" - }, - "leaving": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "observed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "small_business_relief": { - "additionalProperties": true, - "type": "object" - }, - "sources": { - "additionalProperties": true, - "type": "object" - }, - "tax_year": { - "type": "string" - } - }, - "type": "object" - }, - "profit_annual": { - "additionalProperties": false, - "properties": { - "aed": { - "type": [ - "number", - "null" - ] - }, - "amount": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "aed" - ], - "type": "object" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "savings": { - "additionalProperties": false, - "properties": { - "costs_complete": { - "type": "boolean" - }, - "dubai_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_costs": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "home_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "missing_costs": { - "items": { - "enum": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ] - }, - "type": "array" - }, - "net_gain_annual": { - "type": [ - "number", - "null" - ] - }, - "net_gain_monthly": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_annual": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_monthly": { - "type": [ - "number", - "null" - ] - }, - "withheld_reason": { - "enum": [ - "rent_unknown", - null - ] - } - }, - "required": [ - "home_monthly_net", - "dubai_monthly_net", - "net_gain_monthly", - "net_gain_annual", - "dubai_monthly_costs", - "missing_costs", - "costs_complete", - "dubai_monthly_savings", - "dubai_annual_savings", - "home_monthly_savings", - "home_annual_savings", - "savings_difference_monthly", - "savings_difference_annual", - "withheld_reason" - ], - "type": "object" - }, - "transport_reference": { - "additionalProperties": false, - "properties": { - "car_monthly_aed": { - "type": "number" - }, - "fuel_month": { - "type": "string" - }, - "km_per_day": { - "type": "number" - }, - "public_transport_max_aed": { - "type": "number" - }, - "public_transport_min_aed": { - "type": "number" - }, - "salik_per_day": { - "type": "integer" - } - }, - "required": [ - "car_monthly_aed", - "km_per_day", - "salik_per_day", - "public_transport_min_aed", - "public_transport_max_aed", - "fuel_month" - ], - "type": [ - "object", - "null" - ] - } - }, - "required": [ - "estimate", - "disclaimer", - "country", - "household", - "gross_annual", - "home", - "dubai", - "fx", - "dubai_monthly_costs_aed", - "savings", - "transport_reference", - "notices", - "country_notes", - "not_modelled", - "assumptions", - "provenance" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "incomplete_reason": { - "type": [ - "string", - "null" - ] - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "accessed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "title", - "url", - "accessed_on" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ] - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variants": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "type": "string" - }, - "variant_id": { - "type": "string" - } - }, - "required": [ - "variant_id", - "label" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "iso2", - "name", - "currency", - "status", - "incomplete_reason", - "tax_year", - "tax_year_period", - "variants", - "sources", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variant": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "variant_label": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "iso2", + "name", + "currency", + "tax_year", + "tax_year_period", + "variant", + "variant_label" + ], + "type": "object" + }, + "country_notes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "disclaimer": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "gross_annual_aed": { + "type": "number" + }, + "income_tax_aed": { + "const": 0 + }, + "net_annual_aed": { + "type": "number" + }, + "net_monthly_aed": { + "type": "number" + } + }, + "required": [ + "gross_annual_aed", + "net_annual_aed", + "net_monthly_aed", + "income_tax_aed" + ], + "type": "object" + }, + "dubai_monthly_costs_aed": { + "additionalProperties": false, + "properties": { + "groceries": { + "type": [ + "number", + "null" + ] + }, + "health": { + "type": [ + "number", + "null" + ] + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "school": { + "type": [ + "number", + "null" + ] + }, + "transport": { + "type": [ + "number", + "null" + ] + }, + "utilities": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ], + "type": "object" + }, + "estimate": { + "const": true + }, + "fx": { + "additionalProperties": false, + "properties": { + "aed_per_unit": { + "type": [ + "number", + "null" + ] + }, + "rates_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "aed_per_unit", + "rates_on", + "source" + ], + "type": "object" + }, + "groceries_basket": { + "additionalProperties": false, + "properties": { + "estimated_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "required": [ + "value_aed", + "low_aed", + "high_aed" + ], + "type": "object" + }, + "items": { + "type": "integer" + }, + "items_estimated": { + "type": "integer" + }, + "items_observed": { + "type": "integer" + }, + "items_unknown": { + "type": "integer" + }, + "note": { + "type": "string" + }, + "observed_aed": { + "type": "number" + } + }, + "required": [ + "items", + "observed_aed", + "estimated_aed", + "items_observed", + "items_estimated", + "items_unknown", + "note" + ], + "type": "object" + }, + "groceries_estimate": { + "$ref": "#/$defs/HouseholdEstimateLine" + }, + "gross_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "health_insurance": { + "$ref": "#/$defs/HouseholdEstimateLine" + }, + "home": { + "additionalProperties": false, + "properties": { + "breakdown": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": "number" + }, + "component_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "component_id", + "label", + "kind", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "currency": { + "type": "string" + }, + "effective_rate": { + "type": "number" + }, + "effective_rate_percent": { + "type": "number" + }, + "income_tax": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "net_monthly": { + "type": "number" + }, + "social_contributions": { + "type": "number" + } + }, + "required": [ + "currency", + "net_annual", + "net_monthly", + "income_tax", + "social_contributions", + "effective_rate", + "breakdown", + "net_annual_aed" + ], + "type": "object" + }, + "household": { + "additionalProperties": false, + "properties": { + "children": { + "type": "integer" + }, + "status": { + "enum": [ + "single", + "married" + ] + } + }, + "required": [ + "status", + "children" + ], + "type": "object" + }, + "household_type": { + "const": "business_owner" + }, + "left_over_after_fixed_costs_aed": { + "type": "number" + }, + "left_over_after_groceries_aed": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + }, + "not_modelled": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "owner_comparison": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "free_zone": { + "$ref": "#/$defs/BusinessDubaiScenario" + }, + "free_zone_condition": { + "type": "string" + }, + "mainland": { + "$ref": "#/$defs/BusinessDubaiScenario" + } + }, + "type": "object" + }, + "home": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "distributed_profit": { + "type": "number" + }, + "dividend_tax": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "total_tax": { + "type": "number" + } + }, + "type": "object" + }, + "leaving": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "observed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "small_business_relief": { + "additionalProperties": true, + "type": "object" + }, + "sources": { + "additionalProperties": true, + "type": "object" + }, + "tax_year": { + "type": "string" + } + }, + "type": "object" + }, + "profit_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "savings": { + "additionalProperties": false, + "properties": { + "costs_complete": { + "type": "boolean" + }, + "dubai_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_costs": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "home_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "missing_costs": { + "items": { + "enum": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ] + }, + "type": "array" + }, + "net_gain_annual": { + "type": [ + "number", + "null" + ] + }, + "net_gain_monthly": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_annual": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_monthly": { + "type": [ + "number", + "null" + ] + }, + "withheld_reason": { + "enum": [ + "rent_unknown", + null + ] + } + }, + "required": [ + "home_monthly_net", + "dubai_monthly_net", + "net_gain_monthly", + "net_gain_annual", + "dubai_monthly_costs", + "missing_costs", + "costs_complete", + "dubai_monthly_savings", + "dubai_annual_savings", + "home_monthly_savings", + "home_annual_savings", + "savings_difference_monthly", + "savings_difference_annual", + "withheld_reason" + ], + "type": "object" + }, + "transport_budget": { + "$ref": "#/$defs/HouseholdEstimateLine" + }, + "transport_reference": { + "additionalProperties": false, + "properties": { + "car_monthly_aed": { + "type": "number" + }, + "fuel_month": { + "type": "string" + }, + "km_per_day": { + "type": "number" + }, + "public_transport_max_aed": { + "type": "number" + }, + "public_transport_min_aed": { + "type": "number" + }, + "salik_per_day": { + "type": "integer" + } + }, + "required": [ + "car_monthly_aed", + "km_per_day", + "salik_per_day", + "public_transport_min_aed", + "public_transport_max_aed", + "fuel_month" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "estimate", + "disclaimer", + "country", + "household", + "gross_annual", + "home", + "dubai", + "fx", + "dubai_monthly_costs_aed", + "savings", + "transport_reference", + "notices", + "country_notes", + "not_modelled", + "assumptions", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "incomplete_reason": { + "type": [ + "string", + "null" + ] + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "accessed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "title", + "url", + "accessed_on" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "complete", + "incomplete" + ] + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variants": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "variant_id": { + "type": "string" + } + }, + "required": [ + "variant_id", + "label" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "iso2", + "name", + "currency", + "status", + "incomplete_reason", + "tax_year", + "tax_year_period", + "variants", + "sources", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
schools4 fields changed- removed
Output schema / $defs / SchoolFeePolicyRemoved value: -{ - "additionalProperties": false, - "properties": { - "note": { - "type": [ - "string", - "null" - ] - }, - "rules": { - "items": { - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "announced": { - "type": "string" - }, - "cap_pct": { - "type": [ - "number", - "null" - ] - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "cap", - "no-increase" - ] - }, - "publisher": { - "type": "string" - }, - "quote": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "id", - "academic_year", - "kind", - "cap_pct", - "announced", - "publisher", - "url", - "quote", - "summary" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "note", - "rules" - ], - "type": "object" -} - added
Output schema / $defs / SchoolFeePolicySummaryAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "note": { + "type": [ + "string", + "null" + ] + }, + "rules": { + "items": { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "announced": { + "type": "string" + }, + "cap_pct": { + "type": [ + "number", + "null" + ] + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "cap", + "no-increase" + ] + }, + "publisher": { + "type": "string" + }, + "quote": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "academic_year", + "kind", + "cap_pct", + "announced", + "publisher", + "url", + "quote", + "summary" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "note", + "rules" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / $defs / SchoolSearchContextAdded value: +{ + "additionalProperties": true, + "required": [ + "search" + ], + "type": "object" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "search": { - "additionalProperties": false, - "properties": { - "displayed_count": { - "type": "integer" - }, - "near": { - "type": [ - "string", - "null" - ] - }, - "radius_km": { - "type": [ - "number", - "null" - ] - }, - "remaining_count": { - "type": "integer" - }, - "returned_remaining_count": { - "type": "integer" - }, - "total_schools": { - "type": "integer" - }, - "unlocated": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "total_schools", - "near", - "radius_km", - "unlocated" - ], - "type": "object" - } - }, - "required": [ - "search" - ], - "type": "object" - }, - "data": { - "items": { - "additionalProperties": false, - "properties": { - "academic_year": { - "type": [ - "string", - "null" - ] - }, - "annual_fee_range": { - "anyOf": [ - { - "$ref": "#/$defs/AedRange" - }, - { - "type": "null" - } - ] - }, - "area": { - "type": [ - "string", - "null" - ] - }, - "bus": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "source_url": { - "type": "string" - }, - "zones": { - "items": { - "additionalProperties": false, - "properties": { - "annual_aed": { - "type": "number" - }, - "zone": { - "type": "integer" - } - }, - "required": [ - "zone", - "annual_aed" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operator", - "academic_year", - "zones", - "source_url" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "curricula": { - "items": { - "type": "string" - }, - "type": "array" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "grade_fee_aed": { - "type": [ - "number", - "null" - ] - }, - "location_approximate": { - "type": [ - "boolean", - "null" - ] - }, - "name": { - "type": "string" - }, - "open_in_browser": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rating": { - "type": [ - "string", - "null" - ] - }, - "school_id": { - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - }, - "uniforms_status": { - "enum": [ - "available", - "paused", - "not_published" - ] - }, - "website": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "school_id", - "name", - "area", - "curricula", - "rating", - "academic_year", - "annual_fee_range", - "grade_fee_aed", - "website", - "source_url", - "distance_km", - "location_approximate", - "bus", - "uniforms_status", - "open_in_browser", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "fee_policy": { - "anyOf": [ - { - "$ref": "#/$defs/SchoolFeePolicy" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "search": { - "additionalProperties": false, - "properties": { - "displayed_count": { - "type": "integer" - }, - "near": { - "type": [ - "string", - "null" - ] - }, - "radius_km": { - "type": [ - "number", - "null" - ] - }, - "remaining_count": { - "type": "integer" - }, - "returned_remaining_count": { - "type": "integer" - }, - "total_schools": { - "type": "integer" - }, - "unlocated": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "total_schools", - "near", - "radius_km", - "unlocated" - ], - "type": "object" - } - }, - "required": [ - "search" - ], - "type": "object" - }, - "data": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "academic_year": { - "type": [ - "string", - "null" - ] - }, - "annual_fee_range": { - "anyOf": [ - { - "$ref": "#/$defs/AedRange" - }, - { - "type": "null" - } - ] - }, - "area": { - "type": [ - "string", - "null" - ] - }, - "bus": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "source_url": { - "type": "string" - }, - "zones": { - "items": { - "additionalProperties": false, - "properties": { - "annual_aed": { - "type": "number" - }, - "areas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zone": { - "type": "integer" - } - }, - "required": [ - "zone", - "annual_aed", - "areas" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operator", - "academic_year", - "zones", - "source_url" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "curricula": { - "items": { - "type": "string" - }, - "type": "array" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "fees": { - "items": { - "additionalProperties": false, - "properties": { - "annual_fee_aed": { - "type": "number" - }, - "grade": { - "type": "string" - } - }, - "required": [ - "grade", - "annual_fee_aed" - ], - "type": "object" - }, - "type": "array" - }, - "grade_fee_aed": { - "type": [ - "number", - "null" - ] - }, - "location_approximate": { - "type": [ - "boolean", - "null" - ] - }, - "name": { - "type": "string" - }, - "open_in_browser": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rating": { - "type": [ - "string", - "null" - ] - }, - "school_id": { - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - }, - "uniforms_status": { - "enum": [ - "available", - "paused", - "not_published" - ] - }, - "website": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "school_id", - "name", - "area", - "curricula", - "rating", - "academic_year", - "fees", - "annual_fee_range", - "grade_fee_aed", - "website", - "source_url", - "distance_km", - "location_approximate", - "bus", - "uniforms_status", - "open_in_browser", - "provenance" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "fee_policy": { - "anyOf": [ - { - "$ref": "#/$defs/SchoolFeePolicy" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/SchoolSearchContext" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": [ + "string", + "null" + ] + }, + "annual_fee_range": { + "anyOf": [ + { + "$ref": "#/$defs/AedRange" + }, + { + "type": "null" + } + ] + }, + "area": { + "type": [ + "string", + "null" + ] + }, + "bus": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "zones": { + "items": { + "additionalProperties": false, + "properties": { + "annual_aed": { + "type": "number" + }, + "zone": { + "type": "integer" + } + }, + "required": [ + "zone", + "annual_aed" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operator", + "academic_year", + "zones", + "source_url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "curricula": { + "items": { + "type": "string" + }, + "type": "array" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "grade_fee_aed": { + "type": [ + "number", + "null" + ] + }, + "location_approximate": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": "string" + }, + "open_in_browser": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rating": { + "type": [ + "string", + "null" + ] + }, + "school_id": { + "type": "string" + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "uniforms_status": { + "enum": [ + "available", + "paused", + "not_published" + ] + }, + "website": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "school_id", + "name", + "area", + "curricula", + "rating", + "academic_year", + "annual_fee_range", + "grade_fee_aed", + "website", + "source_url", + "distance_km", + "location_approximate", + "bus", + "uniforms_status", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "fee_policy": { + "$ref": "#/$defs/SchoolFeePolicySummary" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/SchoolSearchContext" + }, + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": [ + "string", + "null" + ] + }, + "annual_fee_range": { + "anyOf": [ + { + "$ref": "#/$defs/AedRange" + }, + { + "type": "null" + } + ] + }, + "area": { + "type": [ + "string", + "null" + ] + }, + "bus": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "zones": { + "items": { + "additionalProperties": false, + "properties": { + "annual_aed": { + "type": "number" + }, + "areas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zone": { + "type": "integer" + } + }, + "required": [ + "zone", + "annual_aed", + "areas" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operator", + "academic_year", + "zones", + "source_url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "curricula": { + "items": { + "type": "string" + }, + "type": "array" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "fees": { + "items": { + "additionalProperties": false, + "properties": { + "annual_fee_aed": { + "type": "number" + }, + "grade": { + "type": "string" + } + }, + "required": [ + "grade", + "annual_fee_aed" + ], + "type": "object" + }, + "type": "array" + }, + "grade_fee_aed": { + "type": [ + "number", + "null" + ] + }, + "location_approximate": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": "string" + }, + "open_in_browser": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rating": { + "type": [ + "string", + "null" + ] + }, + "school_id": { + "type": "string" + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "uniforms_status": { + "enum": [ + "available", + "paused", + "not_published" + ] + }, + "website": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "school_id", + "name", + "area", + "curricula", + "rating", + "academic_year", + "fees", + "annual_fee_range", + "grade_fee_aed", + "website", + "source_url", + "distance_km", + "location_approximate", + "bus", + "uniforms_status", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fee_policy": { + "$ref": "#/$defs/SchoolFeePolicySummary" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
2 tool updates
- Changed
fixed_monthly_costs2 fields changed- added
Output schema / $defs / HouseholdMonthlyRangeAdded value: +{ + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + } + }, + "required": [ + "low_aed", + "high_aed" + ], + "type": [ + "object", + "null" + ] +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": true, - "required": [ - "month", - "groceries_reference", - "not_included" - ], - "type": "object" - }, - "data": { - "items": { - "additionalProperties": false, - "properties": { - "covers": { - "type": "string" - }, - "fixed_monthly_costs_aed": { - "type": [ - "number", - "null" - ] - }, - "label": { - "type": "string" - }, - "lines": { - "items": { - "additionalProperties": false, - "properties": { - "assumption": { - "type": [ - "string", - "null" - ] - }, - "label": { - "type": "string" - }, - "line_id": { - "enum": [ - "rent", - "housing_fee", - "dewa", - "transport", - "mobile", - "internet", - "school" - ] - }, - "monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "range_aed": { - "additionalProperties": false, - "properties": { - "high_aed": { - "type": "number" - }, - "low_aed": { - "type": "number" - } - }, - "required": [ - "low_aed", - "high_aed" - ], - "type": [ - "object", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "period_label": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "name", - "url", - "period_label" - ], - "type": [ - "object", - "null" - ] - } - }, - "required": [ - "line_id", - "label", - "monthly_aed", - "range_aed", - "assumption", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "profile_id": { - "enum": [ - "single", - "couple", - "family4" - ] - }, - "provenance": { - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" - } - }, - "required": [ - "profile_id", - "label", - "covers", - "fixed_monthly_costs_aed", - "lines", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "links": { - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" - }, - "meta": { - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": true, + "required": [ + "month", + "groceries_reference", + "not_included" + ], + "type": "object" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "covers": { + "type": "string" + }, + "fixed_monthly_costs_aed": { + "type": [ + "number", + "null" + ] + }, + "label": { + "type": "string" + }, + "lines": { + "items": { + "additionalProperties": false, + "properties": { + "assumption": { + "type": [ + "string", + "null" + ] + }, + "attribution": { + "type": "string" + }, + "basis": { + "additionalProperties": false, + "properties": { + "note": { + "type": "string" + }, + "observed_from": { + "type": "string" + }, + "observed_to": { + "type": "string" + }, + "source_ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "source_ids", + "note" + ], + "type": "object" + }, + "coverage": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + } + ] + }, + "type": "array" + }, + "dependents": { + "type": "integer" + }, + "doubtful": { + "type": "boolean" + }, + "group_coverage": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "kind": { + "enum": [ + "estimate", + "observed" + ] + }, + "label": { + "type": "string" + }, + "line_id": { + "enum": [ + "rent", + "housing_fee", + "dewa", + "transport", + "mobile", + "internet", + "school", + "groceries", + "health_insurance" + ] + }, + "method": { + "const": "fao_supply_x_basket_prices" + }, + "missing_groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "per_dependent_monthly_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "persons": { + "type": "integer" + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "period_label": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "url", + "period_label" + ], + "type": [ + "object", + "null" + ] + }, + "use_condition": { + "const": "Do not show this figure with affiliate links, store recommendations or a shopping cart (FAO additional terms of use)." + }, + "variants": { + "additionalProperties": false, + "properties": { + "spouse_employed": { + "additionalProperties": false, + "properties": { + "dependents": { + "type": "integer" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + } + }, + "required": [ + "dependents", + "monthly_aed", + "range_aed" + ], + "type": "object" + } + }, + "required": [ + "spouse_employed" + ], + "type": "object" + } + }, + "required": [ + "line_id", + "label", + "monthly_aed", + "range_aed", + "assumption", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "profile_id": { + "enum": [ + "single", + "couple", + "family4" + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "with_estimates_aed": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + } + }, + "required": [ + "profile_id", + "label", + "covers", + "fixed_monthly_costs_aed", + "lines", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
move_to_dubai4 fields changed- added
Input schema / properties / spouse_employedAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / HouseholdEstimateLineAdded value: +{ + "additionalProperties": false, + "properties": { + "assumption": { + "type": [ + "string", + "null" + ] + }, + "attribution": { + "type": "string" + }, + "basis": { + "additionalProperties": false, + "properties": { + "note": { + "type": "string" + }, + "observed_from": { + "type": "string" + }, + "observed_to": { + "type": "string" + }, + "source_ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "source_ids", + "note" + ], + "type": "object" + }, + "coverage": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + } + ] + }, + "type": "array" + }, + "dependents": { + "type": "integer" + }, + "doubtful": { + "type": "boolean" + }, + "group_coverage": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "enum": [ + "groceries", + "healthInsurance" + ] + }, + "kind": { + "enum": [ + "estimate", + "observed" + ] + }, + "label": { + "type": "string" + }, + "method": { + "const": "fao_supply_x_basket_prices" + }, + "missing_groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "per_dependent_monthly_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "persons": { + "type": "integer" + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + }, + "source": { + "additionalProperties": false, + "properties": { + "date": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "url", + "date" + ], + "type": [ + "object", + "null" + ] + }, + "use_condition": { + "const": "Do not show this figure with affiliate links, store recommendations or a shopping cart (FAO additional terms of use)." + }, + "variants": { + "additionalProperties": false, + "properties": { + "spouse_employed": { + "additionalProperties": false, + "properties": { + "dependents": { + "type": "integer" + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "$ref": "#/$defs/HouseholdMonthlyRange" + } + }, + "required": [ + "dependents", + "monthly_aed", + "range_aed" + ], + "type": "object" + } + }, + "required": [ + "spouse_employed" + ], + "type": "object" + } + }, + "required": [ + "id", + "label", + "monthly_aed", + "range_aed", + "assumption", + "source" + ], + "type": "object" +} - added
Output schema / $defs / HouseholdMonthlyRangeAdded value: +{ + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + } + }, + "required": [ + "low_aed", + "high_aed" + ], + "type": [ + "object", + "null" + ] +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "assumptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "country": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variant": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "variant_label": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "iso2", - "name", - "currency", - "tax_year", - "tax_year_period", - "variant", - "variant_label" - ], - "type": "object" - }, - "country_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "disclaimer": { - "type": "string" - }, - "dubai": { - "additionalProperties": false, - "properties": { - "gross_annual_aed": { - "type": "number" - }, - "income_tax_aed": { - "const": 0 - }, - "net_annual_aed": { - "type": "number" - }, - "net_monthly_aed": { - "type": "number" - } - }, - "required": [ - "gross_annual_aed", - "net_annual_aed", - "net_monthly_aed", - "income_tax_aed" - ], - "type": "object" - }, - "dubai_monthly_costs_aed": { - "additionalProperties": false, - "properties": { - "groceries": { - "type": [ - "number", - "null" - ] - }, - "health": { - "type": [ - "number", - "null" - ] - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "school": { - "type": [ - "number", - "null" - ] - }, - "transport": { - "type": [ - "number", - "null" - ] - }, - "utilities": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ], - "type": "object" - }, - "estimate": { - "const": true - }, - "fx": { - "additionalProperties": false, - "properties": { - "aed_per_unit": { - "type": [ - "number", - "null" - ] - }, - "rates_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "aed_per_unit", - "rates_on", - "source" - ], - "type": "object" - }, - "groceries_basket": { - "additionalProperties": false, - "properties": { - "estimated_aed": { - "additionalProperties": false, - "properties": { - "high_aed": { - "type": "number" - }, - "low_aed": { - "type": "number" - }, - "value_aed": { - "type": "number" - } - }, - "required": [ - "value_aed", - "low_aed", - "high_aed" - ], - "type": "object" - }, - "items": { - "type": "integer" - }, - "items_estimated": { - "type": "integer" - }, - "items_observed": { - "type": "integer" - }, - "items_unknown": { - "type": "integer" - }, - "note": { - "type": "string" - }, - "observed_aed": { - "type": "number" - } - }, - "required": [ - "items", - "observed_aed", - "estimated_aed", - "items_observed", - "items_estimated", - "items_unknown", - "note" - ], - "type": "object" - }, - "gross_annual": { - "additionalProperties": false, - "properties": { - "aed": { - "type": [ - "number", - "null" - ] - }, - "amount": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "aed" - ], - "type": "object" - }, - "home": { - "additionalProperties": false, - "properties": { - "breakdown": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "number" - }, - "component_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "component_id", - "label", - "kind", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "currency": { - "type": "string" - }, - "effective_rate": { - "type": "number" - }, - "effective_rate_percent": { - "type": "number" - }, - "income_tax": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "net_monthly": { - "type": "number" - }, - "social_contributions": { - "type": "number" - } - }, - "required": [ - "currency", - "net_annual", - "net_monthly", - "income_tax", - "social_contributions", - "effective_rate", - "breakdown", - "net_annual_aed" - ], - "type": "object" - }, - "household": { - "additionalProperties": false, - "properties": { - "children": { - "type": "integer" - }, - "status": { - "enum": [ - "single", - "married" - ] - } - }, - "required": [ - "status", - "children" - ], - "type": "object" - }, - "household_type": { - "const": "business_owner" - }, - "not_modelled": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "owner_comparison": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "dubai": { - "additionalProperties": false, - "properties": { - "free_zone": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "corporate_tax_aed": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": "number" - }, - "saving_annual": { - "type": "number" - }, - "saving_annual_aed": { - "type": "number" - } - }, - "type": "object" - }, - "free_zone_condition": { - "type": "string" - }, - "mainland": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "corporate_tax_aed": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": "number" - }, - "saving_annual": { - "type": "number" - }, - "saving_annual_aed": { - "type": "number" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "home": { - "additionalProperties": false, - "properties": { - "corporate_tax": { - "type": "number" - }, - "distributed_profit": { - "type": "number" - }, - "dividend_tax": { - "type": "number" - }, - "effective_rate": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "total_tax": { - "type": "number" - } - }, - "type": "object" - }, - "leaving": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "observed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "small_business_relief": { - "additionalProperties": true, - "type": "object" - }, - "sources": { - "additionalProperties": true, - "type": "object" - }, - "tax_year": { - "type": "string" - } - }, - "type": "object" - }, - "profit_annual": { - "additionalProperties": false, - "properties": { - "aed": { - "type": [ - "number", - "null" - ] - }, - "amount": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "aed" - ], - "type": "object" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "savings": { - "additionalProperties": false, - "properties": { - "costs_complete": { - "type": "boolean" - }, - "dubai_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_costs": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "home_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "missing_costs": { - "items": { - "enum": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ] - }, - "type": "array" - }, - "net_gain_annual": { - "type": [ - "number", - "null" - ] - }, - "net_gain_monthly": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_annual": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_monthly": { - "type": [ - "number", - "null" - ] - }, - "withheld_reason": { - "enum": [ - "rent_unknown", - null - ] - } - }, - "required": [ - "home_monthly_net", - "dubai_monthly_net", - "net_gain_monthly", - "net_gain_annual", - "dubai_monthly_costs", - "missing_costs", - "costs_complete", - "dubai_monthly_savings", - "dubai_annual_savings", - "home_monthly_savings", - "home_annual_savings", - "savings_difference_monthly", - "savings_difference_annual", - "withheld_reason" - ], - "type": "object" - }, - "transport_reference": { - "additionalProperties": false, - "properties": { - "car_monthly_aed": { - "type": "number" - }, - "fuel_month": { - "type": "string" - }, - "km_per_day": { - "type": "number" - }, - "public_transport_max_aed": { - "type": "number" - }, - "public_transport_min_aed": { - "type": "number" - }, - "salik_per_day": { - "type": "integer" - } - }, - "required": [ - "car_monthly_aed", - "km_per_day", - "salik_per_day", - "public_transport_min_aed", - "public_transport_max_aed", - "fuel_month" - ], - "type": [ - "object", - "null" - ] - } - }, - "required": [ - "estimate", - "disclaimer", - "country", - "household", - "gross_annual", - "home", - "dubai", - "fx", - "dubai_monthly_costs_aed", - "savings", - "transport_reference", - "notices", - "country_notes", - "not_modelled", - "assumptions", - "provenance" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "data": { - "items": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "incomplete_reason": { - "type": [ - "string", - "null" - ] - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "accessed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "title", - "url", - "accessed_on" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ] - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variants": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "type": "string" - }, - "variant_id": { - "type": "string" - } - }, - "required": [ - "variant_id", - "label" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "iso2", - "name", - "currency", - "status", - "incomplete_reason", - "tax_year", - "tax_year_period", - "variants", - "sources", - "provenance" - ], - "type": "object" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variant": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "variant_label": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "iso2", + "name", + "currency", + "tax_year", + "tax_year_period", + "variant", + "variant_label" + ], + "type": "object" + }, + "country_notes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "disclaimer": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "gross_annual_aed": { + "type": "number" + }, + "income_tax_aed": { + "const": 0 + }, + "net_annual_aed": { + "type": "number" + }, + "net_monthly_aed": { + "type": "number" + } + }, + "required": [ + "gross_annual_aed", + "net_annual_aed", + "net_monthly_aed", + "income_tax_aed" + ], + "type": "object" + }, + "dubai_monthly_costs_aed": { + "additionalProperties": false, + "properties": { + "groceries": { + "type": [ + "number", + "null" + ] + }, + "health": { + "type": [ + "number", + "null" + ] + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "school": { + "type": [ + "number", + "null" + ] + }, + "transport": { + "type": [ + "number", + "null" + ] + }, + "utilities": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ], + "type": "object" + }, + "estimate": { + "const": true + }, + "fx": { + "additionalProperties": false, + "properties": { + "aed_per_unit": { + "type": [ + "number", + "null" + ] + }, + "rates_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "aed_per_unit", + "rates_on", + "source" + ], + "type": "object" + }, + "groceries_basket": { + "additionalProperties": false, + "properties": { + "estimated_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "required": [ + "value_aed", + "low_aed", + "high_aed" + ], + "type": "object" + }, + "items": { + "type": "integer" + }, + "items_estimated": { + "type": "integer" + }, + "items_observed": { + "type": "integer" + }, + "items_unknown": { + "type": "integer" + }, + "note": { + "type": "string" + }, + "observed_aed": { + "type": "number" + } + }, + "required": [ + "items", + "observed_aed", + "estimated_aed", + "items_observed", + "items_estimated", + "items_unknown", + "note" + ], + "type": "object" + }, + "groceries_estimate": { + "$ref": "#/$defs/HouseholdEstimateLine" + }, + "gross_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "health_insurance": { + "$ref": "#/$defs/HouseholdEstimateLine" + }, + "home": { + "additionalProperties": false, + "properties": { + "breakdown": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": "number" + }, + "component_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "component_id", + "label", + "kind", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "currency": { + "type": "string" + }, + "effective_rate": { + "type": "number" + }, + "effective_rate_percent": { + "type": "number" + }, + "income_tax": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "net_monthly": { + "type": "number" + }, + "social_contributions": { + "type": "number" + } + }, + "required": [ + "currency", + "net_annual", + "net_monthly", + "income_tax", + "social_contributions", + "effective_rate", + "breakdown", + "net_annual_aed" + ], + "type": "object" + }, + "household": { + "additionalProperties": false, + "properties": { + "children": { + "type": "integer" + }, + "status": { + "enum": [ + "single", + "married" + ] + } + }, + "required": [ + "status", + "children" + ], + "type": "object" + }, + "household_type": { + "const": "business_owner" + }, + "left_over_after_fixed_costs_aed": { + "type": "number" + }, + "left_over_after_groceries_aed": { + "additionalProperties": false, + "properties": { + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "low", + "high" + ], + "type": "object" + }, + "not_modelled": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "owner_comparison": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "free_zone": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "corporate_tax_aed": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": "number" + }, + "saving_annual": { + "type": "number" + }, + "saving_annual_aed": { + "type": "number" + } + }, + "type": "object" + }, + "free_zone_condition": { + "type": "string" + }, + "mainland": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "corporate_tax_aed": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": "number" + }, + "saving_annual": { + "type": "number" + }, + "saving_annual_aed": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "home": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "distributed_profit": { + "type": "number" + }, + "dividend_tax": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "total_tax": { + "type": "number" + } + }, + "type": "object" + }, + "leaving": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "observed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "small_business_relief": { + "additionalProperties": true, + "type": "object" + }, + "sources": { + "additionalProperties": true, + "type": "object" + }, + "tax_year": { + "type": "string" + } + }, + "type": "object" + }, + "profit_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "savings": { + "additionalProperties": false, + "properties": { + "costs_complete": { + "type": "boolean" + }, + "dubai_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_costs": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "home_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "missing_costs": { + "items": { + "enum": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ] + }, + "type": "array" + }, + "net_gain_annual": { + "type": [ + "number", + "null" + ] + }, + "net_gain_monthly": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_annual": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_monthly": { + "type": [ + "number", + "null" + ] + }, + "withheld_reason": { + "enum": [ + "rent_unknown", + null + ] + } + }, + "required": [ + "home_monthly_net", + "dubai_monthly_net", + "net_gain_monthly", + "net_gain_annual", + "dubai_monthly_costs", + "missing_costs", + "costs_complete", + "dubai_monthly_savings", + "dubai_annual_savings", + "home_monthly_savings", + "home_annual_savings", + "savings_difference_monthly", + "savings_difference_annual", + "withheld_reason" + ], + "type": "object" + }, + "transport_reference": { + "additionalProperties": false, + "properties": { + "car_monthly_aed": { + "type": "number" + }, + "fuel_month": { + "type": "string" + }, + "km_per_day": { + "type": "number" + }, + "public_transport_max_aed": { + "type": "number" + }, + "public_transport_min_aed": { + "type": "number" + }, + "salik_per_day": { + "type": "integer" + } + }, + "required": [ + "car_monthly_aed", + "km_per_day", + "salik_per_day", + "public_transport_min_aed", + "public_transport_max_aed", + "fuel_month" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "estimate", + "disclaimer", + "country", + "household", + "gross_annual", + "home", + "dubai", + "fx", + "dubai_monthly_costs_aed", + "savings", + "transport_reference", + "notices", + "country_notes", + "not_modelled", + "assumptions", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "incomplete_reason": { + "type": [ + "string", + "null" + ] + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "accessed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "title", + "url", + "accessed_on" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "complete", + "incomplete" + ] + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variants": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "variant_id": { + "type": "string" + } + }, + "required": [ + "variant_id", + "label" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "iso2", + "name", + "currency", + "status", + "incomplete_reason", + "tax_year", + "tax_year_period", + "variants", + "sources", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
24 tool updates
- Changed
commute_cost10 fields changed- removed
Input schema / properties / emirate_id / typeRemoved value: -"string" - removed
Input schema / properties / fuel / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Input schema / properties / to_hub_id / typeRemoved value: -"string" - removed
Output schema / $defs / AreaCommuteRouteRemoved value: -{ - "additionalProperties": false, - "properties": { - "car": { - "additionalProperties": false, - "properties": { - "crossings": { - "items": { - "additionalProperties": false, - "properties": { - "aed": { - "type": "number" - }, - "at": { - "type": "string" - }, - "gate": { - "type": "string" - }, - "trip": { - "enum": [ - "morning", - "evening" - ], - "type": "string" - } - }, - "required": [ - "gate", - "trip", - "at", - "aed" - ], - "type": "object" - }, - "type": "array" - }, - "days_per_week": { - "type": "integer" - }, - "depart_times": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fuel_aed": { - "type": "number" - }, - "gates": { - "items": { - "type": "string" - }, - "type": "array" - }, - "km_per_day": { - "type": "number" - }, - "litres_per_100km": { - "type": "number" - }, - "monthly_aed": { - "type": "number" - }, - "parking": { - "const": "not_included" - }, - "tolls_aed": { - "type": "number" - }, - "tolls_per_day": { - "type": "number" - } - }, - "required": [ - "monthly_aed", - "km_per_day", - "tolls_per_day", - "days_per_week", - "litres_per_100km", - "depart_times", - "fuel_aed", - "tolls_aed", - "parking", - "gates", - "crossings" - ], - "type": [ - "object", - "null" - ] - }, - "distance_km": { - "type": "number" - }, - "emirate_id": { - "enum": [ - "dubai", - "abu_dhabi", - "sharjah", - "ajman", - "umm_al_quwain", - "ras_al_khaimah", - "fujairah" - ], - "type": "string" - }, - "from_area": { - "type": "string" - }, - "minutes_free_flow": { - "type": [ - "integer", - "null" - ] - }, - "minutes_peak": { - "type": "null" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "to_hub_id": { - "type": "string" - }, - "to_hub_name": { - "type": "string" - } - }, - "required": [ - "emirate_id", - "from_area", - "to_hub_id", - "to_hub_name", - "distance_km", - "minutes_free_flow", - "minutes_peak", - "car", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / AreaCommuteRouteListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/AreaCommuteRoute" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / CommuteEstimateRemoved value: -{ - "additionalProperties": false, - "properties": { - "annual_total_aed": { - "type": [ - "number", - "null" - ] - }, - "calculation_basis": { - "additionalProperties": false, - "properties": { - "kilometres_per_consumption_unit": { - "type": "integer" - }, - "months_per_year": { - "type": "integer" - }, - "weeks_per_year": { - "type": "integer" - } - }, - "required": [ - "weeks_per_year", - "months_per_year", - "kilometres_per_consumption_unit" - ], - "type": "object" - }, - "days_per_month": { - "type": "number" - }, - "fuel_month": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "inputs": { - "additionalProperties": false, - "properties": { - "days_per_week": { - "type": "number" - }, - "fuel": { - "enum": [ - "super98", - "special95", - "eplus91", - "diesel" - ], - "type": "string" - }, - "km_per_day": { - "type": "number" - }, - "l_per_100km": { - "type": "number" - }, - "salik_per_day": { - "type": "integer" - } - }, - "required": [ - "km_per_day", - "days_per_week", - "l_per_100km", - "fuel", - "salik_per_day" - ], - "type": "object" - }, - "litres_per_month": { - "type": "number" - }, - "missing": { - "items": { - "type": "string" - }, - "type": "array" - }, - "monthly_aed": { - "additionalProperties": false, - "properties": { - "fuel": { - "type": [ - "number", - "null" - ] - }, - "salik": { - "type": [ - "number", - "null" - ] - }, - "total": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "fuel", - "salik", - "total" - ], - "type": "object" - }, - "not_included": { - "items": { - "type": "string" - }, - "type": "array" - }, - "price_per_litre_aed": { - "type": [ - "number", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "salik_offpeak_rate_aed": { - "type": [ - "number", - "null" - ] - }, - "salik_rate_aed": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "fuel_month", - "inputs", - "price_per_litre_aed", - "salik_rate_aed", - "days_per_month", - "litres_per_month", - "monthly_aed", - "annual_total_aed", - "missing", - "not_included", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / CommuteEstimateResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/CommuteEstimate" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/CommuteEstimateResponse" - }, - { - "$ref": "#/$defs/AreaCommuteRouteListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "annual_total_aed": { + "type": [ + "number", + "null" + ] + }, + "calculation_basis": { + "additionalProperties": false, + "properties": { + "kilometres_per_consumption_unit": { + "type": "integer" + }, + "months_per_year": { + "type": "integer" + }, + "weeks_per_year": { + "type": "integer" + } + }, + "required": [ + "weeks_per_year", + "months_per_year", + "kilometres_per_consumption_unit" + ], + "type": "object" + }, + "days_per_month": { + "type": "number" + }, + "fuel_month": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "inputs": { + "additionalProperties": false, + "properties": { + "days_per_week": { + "type": "number" + }, + "fuel": { + "enum": [ + "super98", + "special95", + "eplus91", + "diesel" + ] + }, + "km_per_day": { + "type": "number" + }, + "l_per_100km": { + "type": "number" + }, + "salik_per_day": { + "type": "integer" + } + }, + "required": [ + "km_per_day", + "days_per_week", + "l_per_100km", + "fuel", + "salik_per_day" + ], + "type": "object" + }, + "litres_per_month": { + "type": "number" + }, + "missing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "monthly_aed": { + "additionalProperties": false, + "properties": { + "fuel": { + "type": [ + "number", + "null" + ] + }, + "salik": { + "type": [ + "number", + "null" + ] + }, + "total": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "fuel", + "salik", + "total" + ], + "type": "object" + }, + "not_included": { + "items": { + "type": "string" + }, + "type": "array" + }, + "price_per_litre_aed": { + "type": [ + "number", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "salik_offpeak_rate_aed": { + "type": [ + "number", + "null" + ] + }, + "salik_rate_aed": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "fuel_month", + "inputs", + "price_per_litre_aed", + "salik_rate_aed", + "days_per_month", + "litres_per_month", + "monthly_aed", + "annual_total_aed", + "missing", + "not_included", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "car": { + "additionalProperties": false, + "properties": { + "crossings": { + "items": { + "additionalProperties": false, + "properties": { + "aed": { + "type": "number" + }, + "at": { + "type": "string" + }, + "gate": { + "type": "string" + }, + "trip": { + "enum": [ + "morning", + "evening" + ] + } + }, + "required": [ + "gate", + "trip", + "at", + "aed" + ], + "type": "object" + }, + "type": "array" + }, + "days_per_week": { + "type": "integer" + }, + "depart_times": { + "items": { + "type": "string" + }, + "type": "array" + }, + "fuel_aed": { + "type": "number" + }, + "gates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "km_per_day": { + "type": "number" + }, + "litres_per_100km": { + "type": "number" + }, + "monthly_aed": { + "type": "number" + }, + "parking": { + "const": "not_included" + }, + "tolls_aed": { + "type": "number" + }, + "tolls_per_day": { + "type": "number" + } + }, + "required": [ + "monthly_aed", + "km_per_day", + "tolls_per_day", + "days_per_week", + "litres_per_100km", + "depart_times", + "fuel_aed", + "tolls_aed", + "parking", + "gates", + "crossings" + ], + "type": [ + "object", + "null" + ] + }, + "distance_km": { + "type": "number" + }, + "emirate_id": { + "enum": [ + "dubai", + "abu_dhabi", + "sharjah", + "ajman", + "umm_al_quwain", + "ras_al_khaimah", + "fujairah" + ] + }, + "from_area": { + "type": "string" + }, + "minutes_free_flow": { + "type": [ + "integer", + "null" + ] + }, + "minutes_peak": { + "type": "null" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "to_hub_id": { + "type": "string" + }, + "to_hub_name": { + "type": "string" + } + }, + "required": [ + "emirate_id", + "from_area", + "to_hub_id", + "to_hub_name", + "distance_km", + "minutes_free_flow", + "minutes_peak", + "car", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
costs_by_area11 fields changed- removed
Input schema / properties / property_type / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Input schema / properties / transport / typeRemoved value: -"string" - removed
Output schema / $defs / AreaCostContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "rent_period", - "profile", - "assumptions", - "shared_monthly_aed", - "not_included" - ], - "type": "object" -} - removed
Output schema / $defs / AreaLivingCostRemoved value: -{ - "additionalProperties": false, - "properties": { - "cheapest_school_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "cheapest_school_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "contracts": { - "type": "integer" - }, - "housing_fee_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "name": { - "type": "string" - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rank": { - "type": "integer" - }, - "rent_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "rent_p25_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "rent_p75_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "schools_with_fees": { - "type": [ - "integer", - "null" - ] - }, - "total_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "total_with_school_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "communities", - "rent_monthly_aed", - "rent_p25_monthly_aed", - "rent_p75_monthly_aed", - "housing_fee_monthly_aed", - "total_monthly_aed", - "contracts", - "cheapest_school_monthly_aed", - "total_with_school_monthly_aed", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / AreaLivingCostListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/AreaCostContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/AreaLivingCost" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/AreaLivingCostListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "additionalProperties": true, + "required": [ + "rent_period", + "profile", + "assumptions", + "shared_monthly_aed", + "not_included" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "cheapest_school_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "cheapest_school_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "communities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "contracts": { + "type": "integer" + }, + "housing_fee_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": "string" + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "rank": { + "type": "integer" + }, + "rent_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "rent_p25_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "rent_p75_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "schools_with_fees": { + "type": [ + "integer", + "null" + ] + }, + "total_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "total_with_school_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "communities", + "rent_monthly_aed", + "rent_p25_monthly_aed", + "rent_p75_monthly_aed", + "housing_fee_monthly_aed", + "total_monthly_aed", + "contracts", + "cheapest_school_monthly_aed", + "total_with_school_monthly_aed", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
costs_by_emirate23 fields changed- removed
Input schema / properties / emirate_id / typeRemoved value: -"string" - removed
Output schema / $defs / EmirateCosts / properties / areas / items / properties / point / $refRemoved value: -"#/$defs/GeoPoint" - added
Output schema / $defs / EmirateCosts / properties / areas / items / properties / point / additionalPropertiesAdded value: +false - added
Output schema / $defs / EmirateCosts / properties / areas / items / properties / point / propertiesAdded value: +{ + "approximate": { + "type": "boolean" + }, + "lat": { + "type": "number" + }, + "lon": { + "type": "number" + } +} - added
Output schema / $defs / EmirateCosts / properties / areas / items / properties / point / requiredAdded value: +[ + "lat", + "lon", + "approximate" +] - added
Output schema / $defs / EmirateCosts / properties / areas / items / properties / point / typeAdded value: +"object" - removed
Output schema / $defs / EmirateCosts / properties / emirate_id / typeRemoved value: -"string" - removed
Output schema / $defs / EmirateCosts / properties / housing_fee / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / EmirateCosts / properties / provenance / $refRemoved value: -"#/$defs/Provenance" - added
Output schema / $defs / EmirateCosts / properties / provenance / additionalPropertiesAdded value: +true - added
Output schema / $defs / EmirateCosts / properties / provenance / requiredAdded value: +[ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" +] - added
Output schema / $defs / EmirateCosts / properties / provenance / typeAdded value: +"object" - removed
Output schema / $defs / EmirateCosts / properties / rent / properties / medians / items / properties / property_type / typeRemoved value: -"string" - changed
Output schema / $defs / EmirateCosts / properties / rent / properties / period / anyOfPrevious value: -[ - { - "$ref": "#/$defs/Period" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "from": { + "type": "string" + }, + "months": { + "type": [ + "integer", + "null" + ] + }, + "to": { + "type": "string" + } + }, + "required": [ + "from", + "to", + "months" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / $defs / EmirateCosts / properties / rent / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / EmirateCosts / properties / schools / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / EmirateCostsListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/EmirateCostContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/EmirateCosts" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / EmirateCostsResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/EmirateCostContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "anyOf": [ - { - "$ref": "#/$defs/EmirateCosts" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / GeoPointRemoved value: -{ - "additionalProperties": false, - "properties": { - "approximate": { - "type": "boolean" - }, - "lat": { - "type": "number" - }, - "lon": { - "type": "number" - } - }, - "required": [ - "lat", - "lon", - "approximate" - ], - "type": "object" -} - removed
Output schema / $defs / PeriodRemoved value: -{ - "additionalProperties": false, - "properties": { - "from": { - "type": "string" - }, - "months": { - "type": [ - "integer", - "null" - ] - }, - "to": { - "type": "string" - } - }, - "required": [ - "from", - "to", - "months" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/EmirateCostsListResponse" - }, - { - "$ref": "#/$defs/EmirateCostsResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "$ref": "#/$defs/EmirateCostContext" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "$ref": "#/$defs/EmirateCosts" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "$ref": "#/$defs/EmirateCostContext" + }, + { + "type": "null" + } + ] + }, + "data": { + "anyOf": [ + { + "$ref": "#/$defs/EmirateCosts" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
data_sources6 fields changed- removed
Input schema / properties / license_status / typeRemoved value: -"string" - removed
Input schema / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / SourceListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/Source" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / SourceResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "$ref": "#/$defs/Source" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/SourceListResponse" - }, - { - "$ref": "#/$defs/SourceResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/$defs/Source" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "$ref": "#/$defs/Source" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
dewa6 fields changed- removed
Output schema / $defs / DewaBillEstimateRemoved value: -{ - "additionalProperties": false, - "properties": { - "annual_rent_aed": { - "type": [ - "number", - "null" - ] - }, - "electricity_aed": { - "type": [ - "number", - "null" - ] - }, - "electricity_fuel_surcharge_aed_per_kwh": { - "type": [ - "number", - "null" - ] - }, - "housing_fee_aed": { - "type": [ - "number", - "null" - ] - }, - "housing_fee_percent": { - "type": [ - "number", - "null" - ] - }, - "kwh": { - "type": [ - "number", - "null" - ] - }, - "meter_service_aed": { - "type": [ - "number", - "null" - ] - }, - "months_per_year": { - "type": "integer" - }, - "not_included": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "subtotal_aed": { - "type": [ - "number", - "null" - ] - }, - "surcharge_month": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "tariff": { - "$ref": "#/$defs/DewaTariff" - }, - "total_aed": { - "type": [ - "number", - "null" - ] - }, - "vat_aed": { - "type": [ - "number", - "null" - ] - }, - "water_aed": { - "type": [ - "number", - "null" - ] - }, - "water_fuel_surcharge_aed_per_m3": { - "type": [ - "number", - "null" - ] - }, - "water_gallons": { - "type": [ - "number", - "null" - ] - }, - "water_m3": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "surcharge_month", - "electricity_fuel_surcharge_aed_per_kwh", - "water_fuel_surcharge_aed_per_m3", - "kwh", - "water_m3", - "electricity_aed", - "water_aed", - "meter_service_aed", - "subtotal_aed", - "vat_aed", - "housing_fee_aed", - "total_aed", - "not_included", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / DewaBillEstimateResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/DewaBillEstimate" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / DewaTariff / properties / typical / items / properties / profile_id / typeRemoved value: -"string" - removed
Output schema / $defs / DewaTariffResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/DewaTariff" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/DewaTariffResponse" - }, - { - "$ref": "#/$defs/DewaBillEstimateResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "$ref": "#/$defs/DewaTariff" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "annual_rent_aed": { + "type": [ + "number", + "null" + ] + }, + "electricity_aed": { + "type": [ + "number", + "null" + ] + }, + "electricity_fuel_surcharge_aed_per_kwh": { + "type": [ + "number", + "null" + ] + }, + "housing_fee_aed": { + "type": [ + "number", + "null" + ] + }, + "housing_fee_percent": { + "type": [ + "number", + "null" + ] + }, + "kwh": { + "type": [ + "number", + "null" + ] + }, + "meter_service_aed": { + "type": [ + "number", + "null" + ] + }, + "months_per_year": { + "type": "integer" + }, + "not_included": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "subtotal_aed": { + "type": [ + "number", + "null" + ] + }, + "surcharge_month": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "tariff": { + "$ref": "#/$defs/DewaTariff" + }, + "total_aed": { + "type": [ + "number", + "null" + ] + }, + "vat_aed": { + "type": [ + "number", + "null" + ] + }, + "water_aed": { + "type": [ + "number", + "null" + ] + }, + "water_fuel_surcharge_aed_per_m3": { + "type": [ + "number", + "null" + ] + }, + "water_gallons": { + "type": [ + "number", + "null" + ] + }, + "water_m3": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "surcharge_month", + "electricity_fuel_surcharge_aed_per_kwh", + "water_fuel_surcharge_aed_per_m3", + "kwh", + "water_m3", + "electricity_aed", + "water_aed", + "meter_service_aed", + "subtotal_aed", + "vat_aed", + "housing_fee_aed", + "total_aed", + "not_included", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
fixed_monthly_costs10 fields changed- removed
Input schema / properties / profile / typeRemoved value: -"string" - removed
Output schema / $defs / CostLineRemoved value: -{ - "additionalProperties": false, - "properties": { - "assumption": { - "type": [ - "string", - "null" - ] - }, - "label": { - "type": "string" - }, - "line_id": { - "enum": [ - "rent", - "housing_fee", - "dewa", - "transport", - "mobile", - "internet", - "school" - ], - "type": "string" - }, - "monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "range_aed": { - "additionalProperties": false, - "properties": { - "high_aed": { - "type": "number" - }, - "low_aed": { - "type": "number" - } - }, - "required": [ - "low_aed", - "high_aed" - ], - "type": [ - "object", - "null" - ] - }, - "source": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "period_label": { - "type": [ - "string", - "null" - ] - }, - "url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "name", - "url", - "period_label" - ], - "type": [ - "object", - "null" - ] - } - }, - "required": [ - "line_id", - "label", - "monthly_aed", - "range_aed", - "assumption", - "source" - ], - "type": "object" -} - removed
Output schema / $defs / HouseholdCostContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "month", - "groceries_reference", - "not_included" - ], - "type": "object" -} - removed
Output schema / $defs / HouseholdCostProfileRemoved value: -{ - "additionalProperties": false, - "properties": { - "covers": { - "type": "string" - }, - "fixed_monthly_costs_aed": { - "type": [ - "number", - "null" - ] - }, - "label": { - "type": "string" - }, - "lines": { - "items": { - "$ref": "#/$defs/CostLine" - }, - "type": "array" - }, - "profile_id": { - "enum": [ - "single", - "couple", - "family4" - ], - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - } - }, - "required": [ - "profile_id", - "label", - "covers", - "fixed_monthly_costs_aed", - "lines", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / HouseholdCostProfileListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "$ref": "#/$defs/HouseholdCostContext" - }, - "data": { - "items": { - "$ref": "#/$defs/HouseholdCostProfile" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/HouseholdCostProfileListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": true, + "required": [ + "month", + "groceries_reference", + "not_included" + ], + "type": "object" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "covers": { + "type": "string" + }, + "fixed_monthly_costs_aed": { + "type": [ + "number", + "null" + ] + }, + "label": { + "type": "string" + }, + "lines": { + "items": { + "additionalProperties": false, + "properties": { + "assumption": { + "type": [ + "string", + "null" + ] + }, + "label": { + "type": "string" + }, + "line_id": { + "enum": [ + "rent", + "housing_fee", + "dewa", + "transport", + "mobile", + "internet", + "school" + ] + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + } + }, + "required": [ + "low_aed", + "high_aed" + ], + "type": [ + "object", + "null" + ] + }, + "source": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "period_label": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "url", + "period_label" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "line_id", + "label", + "monthly_aed", + "range_aed", + "assumption", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "profile_id": { + "enum": [ + "single", + "couple", + "family4" + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + } + }, + "required": [ + "profile_id", + "label", + "covers", + "fixed_monthly_costs_aed", + "lines", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
free_zone_companies10 fields changed- removed
Input schema / properties / emirate / typeRemoved value: -"string" - removed
Input schema / properties / published / typeRemoved value: -"string" - removed
Output schema / $defs / CompanyContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "mainland" - ], - "type": "object" -} - removed
Output schema / $defs / FreeZoneSetupRemoved value: -{ - "additionalProperties": false, - "properties": { - "emirate_id": { - "enum": [ - "dubai", - "abu_dhabi", - "sharjah", - "ajman", - "umm_al_quwain", - "ras_al_khaimah", - "fujairah", - null - ], - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "official_site": { - "type": [ - "string", - "null" - ] - }, - "packages": { - "items": { - "additionalProperties": false, - "properties": { - "first_year_aed": { - "type": [ - "number", - "null" - ] - }, - "monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "name": { - "type": "string" - }, - "qualifier": { - "enum": [ - "exact", - "from" - ], - "type": "string" - }, - "quote": { - "type": "string" - }, - "renewal_aed": { - "type": [ - "number", - "null" - ] - }, - "retrieved_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source_url": { - "type": "string" - }, - "visas_included": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "name", - "visas_included", - "first_year_aed", - "monthly_aed", - "renewal_aed", - "qualifier", - "quote", - "source_url", - "retrieved_at" - ], - "type": "object" - }, - "type": "array" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "published": { - "enum": [ - "one_visa", - "partial", - "none", - "paused" - ], - "type": "string" - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "emirate_id", - "official_site", - "published", - "packages", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / FreeZoneSetupListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/CompanyContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/FreeZoneSetup" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/FreeZoneSetupListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "additionalProperties": true, + "required": [ + "mainland" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "emirate_id": { + "enum": [ + "dubai", + "abu_dhabi", + "sharjah", + "ajman", + "umm_al_quwain", + "ras_al_khaimah", + "fujairah", + null + ] + }, + "name": { + "type": "string" + }, + "official_site": { + "type": [ + "string", + "null" + ] + }, + "packages": { + "items": { + "additionalProperties": false, + "properties": { + "first_year_aed": { + "type": [ + "number", + "null" + ] + }, + "monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": "string" + }, + "qualifier": { + "enum": [ + "exact", + "from" + ] + }, + "quote": { + "type": "string" + }, + "renewal_aed": { + "type": [ + "number", + "null" + ] + }, + "retrieved_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source_url": { + "type": "string" + }, + "visas_included": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "name", + "visas_included", + "first_year_aed", + "monthly_aed", + "renewal_aed", + "qualifier", + "quote", + "source_url", + "retrieved_at" + ], + "type": "object" + }, + "type": "array" + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "published": { + "enum": [ + "one_visa", + "partial", + "none", + "paused" + ] + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "emirate_id", + "official_site", + "published", + "packages", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
fuel_prices8 fields changed- removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / FuelContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "tolls", - "parking", - "public_transport" - ], - "type": "object" -} - removed
Output schema / $defs / FuelPriceHistoryResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/FuelPriceMonth" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / FuelPriceMonthRemoved value: -{ - "additionalProperties": false, - "properties": { - "month": { - "type": "string" - }, - "prices": { - "$ref": "#/$defs/FuelGradePrices" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - } - }, - "required": [ - "month", - "prices", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / FuelPricesRemoved value: -{ - "additionalProperties": false, - "properties": { - "announcement": { - "additionalProperties": false, - "properties": { - "published_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "publisher": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "publisher", - "url", - "published_at" - ], - "type": [ - "object", - "null" - ] - }, - "change": { - "anyOf": [ - { - "$ref": "#/$defs/FuelGradePrices" - }, - { - "type": "null" - } - ] - }, - "history_summary": { - "additionalProperties": false, - "properties": { - "from": { - "type": [ - "string", - "null" - ] - }, - "missing_months": { - "type": "integer" - }, - "to": { - "type": [ - "string", - "null" - ] - }, - "tracked_months": { - "type": "integer" - } - }, - "required": [ - "tracked_months", - "from", - "to", - "missing_months" - ], - "type": "object" - }, - "missing_months": { - "items": { - "type": "string" - }, - "type": "array" - }, - "month": { - "type": "string" - }, - "previous": { - "additionalProperties": false, - "properties": { - "month": { - "type": "string" - }, - "prices": { - "$ref": "#/$defs/FuelGradePrices" - } - }, - "required": [ - "month", - "prices" - ], - "type": [ - "object", - "null" - ] - }, - "prices": { - "$ref": "#/$defs/FuelGradePrices" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "tank_costs": { - "items": { - "additionalProperties": false, - "properties": { - "diesel_aed": { - "type": [ - "number", - "null" - ] - }, - "eplus91_aed": { - "type": [ - "number", - "null" - ] - }, - "special95_aed": { - "type": [ - "number", - "null" - ] - }, - "super98_aed": { - "type": [ - "number", - "null" - ] - }, - "tank_litres": { - "type": "integer" - } - }, - "required": [ - "tank_litres", - "super98_aed", - "special95_aed", - "eplus91_aed", - "diesel_aed" - ], - "type": "object" - }, - "type": "array" - }, - "transport_context": { - "$ref": "#/$defs/FuelContext" - }, - "unit": { - "const": "AED per litre" - } - }, - "required": [ - "month", - "unit", - "prices", - "previous", - "change", - "tank_costs", - "announcement", - "missing_months", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / FuelPricesResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/FuelPrices" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/FuelPricesResponse" - }, - { - "$ref": "#/$defs/FuelPriceHistoryResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "announcement": { + "additionalProperties": false, + "properties": { + "published_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "publisher": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "publisher", + "url", + "published_at" + ], + "type": [ + "object", + "null" + ] + }, + "change": { + "anyOf": [ + { + "$ref": "#/$defs/FuelGradePrices" + }, + { + "type": "null" + } + ] + }, + "history_summary": { + "additionalProperties": false, + "properties": { + "from": { + "type": [ + "string", + "null" + ] + }, + "missing_months": { + "type": "integer" + }, + "to": { + "type": [ + "string", + "null" + ] + }, + "tracked_months": { + "type": "integer" + } + }, + "required": [ + "tracked_months", + "from", + "to", + "missing_months" + ], + "type": "object" + }, + "missing_months": { + "items": { + "type": "string" + }, + "type": "array" + }, + "month": { + "type": "string" + }, + "previous": { + "additionalProperties": false, + "properties": { + "month": { + "type": "string" + }, + "prices": { + "$ref": "#/$defs/FuelGradePrices" + } + }, + "required": [ + "month", + "prices" + ], + "type": [ + "object", + "null" + ] + }, + "prices": { + "$ref": "#/$defs/FuelGradePrices" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "tank_costs": { + "items": { + "additionalProperties": false, + "properties": { + "diesel_aed": { + "type": [ + "number", + "null" + ] + }, + "eplus91_aed": { + "type": [ + "number", + "null" + ] + }, + "special95_aed": { + "type": [ + "number", + "null" + ] + }, + "super98_aed": { + "type": [ + "number", + "null" + ] + }, + "tank_litres": { + "type": "integer" + } + }, + "required": [ + "tank_litres", + "super98_aed", + "special95_aed", + "eplus91_aed", + "diesel_aed" + ], + "type": "object" + }, + "type": "array" + }, + "transport_context": { + "additionalProperties": true, + "required": [ + "tolls", + "parking", + "public_transport" + ], + "type": "object" + }, + "unit": { + "const": "AED per litre" + } + }, + "required": [ + "month", + "unit", + "prices", + "previous", + "change", + "tank_costs", + "announcement", + "missing_months", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "month": { + "type": "string" + }, + "prices": { + "$ref": "#/$defs/FuelGradePrices" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + } + }, + "required": [ + "month", + "prices", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
fx_rates7 fields changed- removed
Output schema / $defs / FxRatesRemoved value: -{ - "additionalProperties": false, - "properties": { - "base": { - "const": "AED" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "published_label": { - "type": [ - "string", - "null" - ] - }, - "rates": { - "items": { - "additionalProperties": false, - "properties": { - "aed_per_unit": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "currency", - "aed_per_unit" - ], - "type": "object" - }, - "type": "array" - }, - "rates_on": { - "type": "string" - }, - "unit": { - "const": "AED per 1 unit of currency" - } - }, - "required": [ - "base", - "unit", - "rates_on", - "published_label", - "rates", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / FxRatesResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/FxRates" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/FxRatesResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "base": { + "const": "AED" + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "published_label": { + "type": [ + "string", + "null" + ] + }, + "rates": { + "items": { + "additionalProperties": false, + "properties": { + "aed_per_unit": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "currency", + "aed_per_unit" + ], + "type": "object" + }, + "type": "array" + }, + "rates_on": { + "type": "string" + }, + "unit": { + "const": "AED per 1 unit of currency" + } + }, + "required": [ + "base", + "unit", + "rates_on", + "published_label", + "rates", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
grocery_compare_list15 fields changed- removed
Output schema / $defs / ComparisonLineRemoved value: -{ - "additionalProperties": false, - "properties": { - "at_recommended_store": { - "anyOf": [ - { - "$ref": "#/$defs/OfferAt" - }, - { - "type": "null" - } - ] - }, - "candidates": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "product_id": { - "type": "string" - } - }, - "required": [ - "product_id", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "cheapest_seen": { - "additionalProperties": false, - "properties": { - "cost_aed": { - "type": "number" - }, - "store_id": { - "type": "string" - }, - "store_name": { - "type": "string" - } - }, - "required": [ - "store_id", - "store_name", - "cost_aed" - ], - "type": [ - "object", - "null" - ] - }, - "match": { - "type": [ - "string", - "null" - ] - }, - "next_step": { - "type": [ - "string", - "null" - ] - }, - "product": { - "additionalProperties": false, - "properties": { - "comparison": { - "enum": [ - "exact", - "equivalent" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "product_id": { - "type": "string" - }, - "unit": { - "enum": [ - "each", - "kg", - "l" - ], - "type": "string" - } - }, - "required": [ - "product_id", - "name", - "comparison", - "unit" - ], - "type": [ - "object", - "null" - ] - }, - "quantity": { - "additionalProperties": false, - "properties": { - "assumed": { - "type": "boolean" - }, - "source": { - "type": "string" - }, - "unit": { - "enum": [ - "each", - "kg", - "l" - ], - "type": "string" - }, - "value": { - "type": "number" - } - }, - "required": [ - "value", - "unit", - "source", - "assumed" - ], - "type": [ - "object", - "null" - ] - }, - "status": { - "enum": [ - "compared", - "not_compared", - "unresolved" - ], - "type": "string" - }, - "text": { - "type": "string" - }, - "unresolved_reason": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "text", - "status", - "match", - "product", - "quantity", - "at_recommended_store", - "cheapest_seen", - "unresolved_reason", - "candidates", - "next_step" - ], - "type": "object" -} - added
Output schema / $defs / EstimateTotalsAdded value: +{ + "additionalProperties": false, + "properties": { + "estimated_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "type": "object" + }, + "items_estimated": { + "type": "integer" + }, + "items_observed": { + "type": "integer" + }, + "items_unknown": { + "type": "integer" + }, + "observed_aed": { + "type": "number" + } + }, + "type": "object" +} - removed
Output schema / $defs / GroceryComparisonRemoved value: -{ - "additionalProperties": false, - "properties": { - "area": { - "additionalProperties": false, - "properties": { - "ok": { - "type": "boolean" - }, - "reason": { - "type": [ - "string", - "null" - ] - }, - "value": { - "type": "string" - } - }, - "required": [ - "ok", - "reason", - "value" - ], - "type": "object" - }, - "below_minimum_stores": { - "items": { - "additionalProperties": false, - "properties": { - "minimum_order_aed": { - "type": "number" - }, - "shortfall_aed": { - "type": "number" - }, - "store_id": { - "type": "string" - }, - "store_name": { - "type": "string" - }, - "subtotal_aed": { - "type": "number" - } - }, - "required": [ - "store_id", - "store_name", - "minimum_order_aed", - "subtotal_aed", - "shortfall_aed" - ], - "type": "object" - }, - "type": "array" - }, - "browser_handoff_truncated": { - "type": "boolean" - }, - "catalog_compiled_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "enum": [ - "high", - "medium", - "low", - "none" - ], - "type": "string" - }, - "items": { - "items": { - "$ref": "#/$defs/ComparisonLine" - }, - "type": "array" - }, - "outcome": { - "enum": [ - "estimated", - "provisional", - "insufficient", - "single_store", - "empty", - "blocked" - ], - "type": "string" - }, - "ranking": { - "items": { - "$ref": "#/$defs/StoreTotal" - }, - "type": "array" - }, - "recommended_store": { - "anyOf": [ - { - "$ref": "#/$defs/StoreTotal" - }, - { - "type": "null" - } - ] - }, - "single_product_mode": { - "type": "boolean" - } - }, - "required": [ - "outcome", - "confidence", - "single_product_mode", - "catalog_compiled_at", - "area", - "recommended_store", - "ranking", - "items", - "below_minimum_stores", - "browser_handoff_truncated" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryComparisonResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/GroceryComparison" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / OfferAt / properties / sale_mode / typeRemoved value: -"string" - removed
Output schema / $defs / OfferAt / properties / unit / typeRemoved value: -"string" - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - added
Output schema / $defs / StoreTotal / properties / cartAdded value: +{ + "additionalProperties": false, + "properties": { + "add_all_url": { + "type": "null" + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "packs": { + "type": [ + "number", + "null" + ] + }, + "text": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "method": { + "const": "links" + } + }, + "type": "object" +} - added
Output schema / $defs / StoreTotal / properties / estimated_labelAdded value: +{ + "const": "items not priced at this store — estimated generic price" +} - removed
Output schema / $defs / StoreTotal / properties / ship_reason / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / $defs / StoreTotal / properties / totalsAdded value: +{ + "$ref": "#/$defs/EstimateTotals" +} - removed
Output schema / $defs / StoreTotal / properties / unit / typeRemoved value: -[ - "string", - "null" -] - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/GroceryComparisonResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "area": { + "additionalProperties": false, + "properties": { + "ok": { + "type": "boolean" + }, + "reason": { + "type": [ + "string", + "null" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "ok", + "reason", + "value" + ], + "type": "object" + }, + "below_minimum_stores": { + "items": { + "additionalProperties": false, + "properties": { + "minimum_order_aed": { + "type": "number" + }, + "shortfall_aed": { + "type": "number" + }, + "store_id": { + "type": "string" + }, + "store_name": { + "type": "string" + }, + "subtotal_aed": { + "type": "number" + } + }, + "required": [ + "store_id", + "store_name", + "minimum_order_aed", + "subtotal_aed", + "shortfall_aed" + ], + "type": "object" + }, + "type": "array" + }, + "browser_handoff_truncated": { + "type": "boolean" + }, + "catalog_compiled_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "confidence": { + "enum": [ + "high", + "medium", + "low", + "none" + ] + }, + "items": { + "items": { + "additionalProperties": false, + "properties": { + "at_recommended_store": { + "anyOf": [ + { + "$ref": "#/$defs/OfferAt" + }, + { + "type": "null" + } + ] + }, + "candidates": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "product_id": { + "type": "string" + } + }, + "required": [ + "product_id", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "cheapest_seen": { + "additionalProperties": false, + "properties": { + "cost_aed": { + "type": "number" + }, + "store_id": { + "type": "string" + }, + "store_name": { + "type": "string" + } + }, + "required": [ + "store_id", + "store_name", + "cost_aed" + ], + "type": [ + "object", + "null" + ] + }, + "estimate": { + "additionalProperties": false, + "properties": { + "as_of": { + "type": "string" + }, + "basis": { + "additionalProperties": true, + "type": "object" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low" + ] + }, + "kind": { + "const": "estimate" + }, + "label": { + "const": "Estimate — not a store price" + }, + "method": { + "enum": [ + "official_same_product", + "own_last_observed", + "official_category", + "category_median", + "shopper_reports" + ] + }, + "packs": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + } + }, + "type": "object" + }, + "unit": { + "enum": [ + "kg", + "l", + "each" + ] + }, + "unit_value_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "type": "object" + }, + "match": { + "type": [ + "string", + "null" + ] + }, + "next_step": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": "null" + }, + "product": { + "additionalProperties": false, + "properties": { + "comparison": { + "enum": [ + "exact", + "equivalent" + ] + }, + "name": { + "type": "string" + }, + "product_id": { + "type": "string" + }, + "unit": { + "enum": [ + "each", + "kg", + "l" + ] + } + }, + "required": [ + "product_id", + "name", + "comparison", + "unit" + ], + "type": [ + "object", + "null" + ] + }, + "quantity": { + "additionalProperties": false, + "properties": { + "assumed": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "unit": { + "enum": [ + "each", + "kg", + "l" + ] + }, + "value": { + "type": "number" + } + }, + "required": [ + "value", + "unit", + "source", + "assumed" + ], + "type": [ + "object", + "null" + ] + }, + "status": { + "enum": [ + "compared", + "not_compared", + "unresolved" + ] + }, + "text": { + "type": "string" + }, + "unresolved_reason": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "text", + "status", + "match", + "product", + "quantity", + "at_recommended_store", + "cheapest_seen", + "unresolved_reason", + "candidates", + "next_step" + ], + "type": "object" + }, + "type": "array" + }, + "outcome": { + "enum": [ + "estimated", + "provisional", + "insufficient", + "single_store", + "empty", + "blocked" + ] + }, + "ranking": { + "items": { + "$ref": "#/$defs/StoreTotal" + }, + "type": "array" + }, + "recommended_store": { + "anyOf": [ + { + "$ref": "#/$defs/StoreTotal" + }, + { + "type": "null" + } + ] + }, + "single_product_mode": { + "type": "boolean" + }, + "totals": { + "$ref": "#/$defs/EstimateTotals" + } + }, + "required": [ + "outcome", + "confidence", + "single_product_mode", + "catalog_compiled_at", + "area", + "recommended_store", + "ranking", + "items", + "below_minimum_stores", + "browser_handoff_truncated" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
grocery_products17 fields changed- removed
Input schema / properties / availability / typeRemoved value: -"string" - removed
Input schema / properties / comparison / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOffer / properties / availability / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOffer / properties / comparison / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOffer / properties / freshness / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOffer / properties / sale_mode / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOffer / properties / unit / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryOfferListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/GroceryOffer" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryProductRemoved value: -{ - "additionalProperties": false, - "properties": { - "comparison": { - "enum": [ - "exact", - "equivalent" - ], - "type": "string" - }, - "default_quantity": { - "type": [ - "number", - "null" - ] - }, - "lowest_price_aed": { - "type": [ - "number", - "null" - ] - }, - "name": { - "type": "string" - }, - "offers": { - "items": { - "$ref": "#/$defs/GroceryOffer" - }, - "type": "array" - }, - "offers_count": { - "type": "integer" - }, - "open_in_browser": { - "type": "string" - }, - "page_url": { - "type": [ - "string", - "null" - ] - }, - "product_id": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "unit": { - "enum": [ - "each", - "kg", - "l" - ], - "type": "string" - } - }, - "required": [ - "product_id", - "name", - "comparison", - "unit", - "default_quantity", - "offers_count", - "lowest_price_aed", - "page_url", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryProductDetailRemoved value: -{ - "additionalProperties": false, - "properties": { - "comparison": { - "enum": [ - "exact", - "equivalent" - ], - "type": "string" - }, - "default_quantity": { - "type": [ - "number", - "null" - ] - }, - "name": { - "type": "string" - }, - "offers": { - "items": { - "$ref": "#/$defs/GroceryOffer" - }, - "type": "array" - }, - "open_in_browser": { - "type": "string" - }, - "page_url": { - "type": [ - "string", - "null" - ] - }, - "price_history": { - "additionalProperties": false, - "properties": { - "note": { - "type": "string" - }, - "points": { - "items": { - "$ref": "#/$defs/PriceHistoryPoint" - }, - "type": "array" - }, - "status": { - "enum": [ - "available", - "not_published" - ], - "type": "string" - } - }, - "required": [ - "status", - "note", - "points" - ], - "type": "object" - }, - "product_id": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "unit": { - "enum": [ - "each", - "kg", - "l" - ], - "type": "string" - } - }, - "required": [ - "product_id", - "name", - "comparison", - "unit", - "default_quantity", - "page_url", - "open_in_browser", - "offers", - "price_history", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryProductListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/GroceryProduct" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryProductResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/GroceryProductDetail" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - added
Output schema / $defs / PriceEstimateAdded value: +{ + "additionalProperties": false, + "properties": { + "as_of": { + "type": "string" + }, + "basis": { + "additionalProperties": true, + "type": "object" + }, + "confidence": { + "enum": [ + "high", + "medium", + "low" + ] + }, + "kind": { + "const": "estimate" + }, + "label": { + "const": "Estimate — not a store price" + }, + "method": { + "enum": [ + "official_same_product", + "own_last_observed", + "official_category", + "category_median", + "shopper_reports" + ] + }, + "packs": { + "type": [ + "number", + "null" + ] + }, + "range_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + } + }, + "type": "object" + }, + "unit": { + "enum": [ + "kg", + "l", + "each" + ] + }, + "unit_value_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "type": "object" +} - removed
Output schema / $defs / PriceHistoryPointRemoved value: -{ - "additionalProperties": false, - "properties": { - "date": { - "type": "string" - }, - "price_aed": { - "type": "number" - }, - "store_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "price_aed", - "store_id" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/GroceryProductListResponse" - }, - { - "$ref": "#/$defs/GroceryProductResponse" - }, - { - "$ref": "#/$defs/GroceryOfferListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "comparison": { + "enum": [ + "exact", + "equivalent" + ] + }, + "default_quantity": { + "type": [ + "number", + "null" + ] + }, + "estimate": { + "$ref": "#/$defs/PriceEstimate" + }, + "lowest_price_aed": { + "type": [ + "number", + "null" + ] + }, + "name": { + "type": "string" + }, + "offers": { + "items": { + "$ref": "#/$defs/GroceryOffer" + }, + "type": "array" + }, + "offers_count": { + "type": "integer" + }, + "open_in_browser": { + "type": "string" + }, + "page_url": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": "null" + }, + "product_id": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "unit": { + "enum": [ + "each", + "kg", + "l" + ] + } + }, + "required": [ + "product_id", + "name", + "comparison", + "unit", + "default_quantity", + "offers_count", + "lowest_price_aed", + "page_url", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "comparison": { + "enum": [ + "exact", + "equivalent" + ] + }, + "default_quantity": { + "type": [ + "number", + "null" + ] + }, + "estimate": { + "$ref": "#/$defs/PriceEstimate" + }, + "name": { + "type": "string" + }, + "offers": { + "items": { + "$ref": "#/$defs/GroceryOffer" + }, + "type": "array" + }, + "open_in_browser": { + "type": "string" + }, + "page_url": { + "type": [ + "string", + "null" + ] + }, + "price": { + "type": "null" + }, + "price_history": { + "additionalProperties": false, + "properties": { + "note": { + "type": "string" + }, + "points": { + "items": { + "additionalProperties": false, + "properties": { + "date": { + "type": "string" + }, + "price_aed": { + "type": "number" + }, + "store_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "price_aed", + "store_id" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "available", + "not_published" + ] + } + }, + "required": [ + "status", + "note", + "points" + ], + "type": "object" + }, + "product_id": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "unit": { + "enum": [ + "each", + "kg", + "l" + ] + } + }, + "required": [ + "product_id", + "name", + "comparison", + "unit", + "default_quantity", + "page_url", + "open_in_browser", + "offers", + "price_history", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/$defs/GroceryOffer" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
grocery_stores15 fields changed- removed
Input schema / properties / delivery_rule_status / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / DeliveryRuleRemoved value: -{ - "additionalProperties": false, - "properties": { - "checked_at": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "fee_max_aed": { - "type": [ - "number", - "null" - ] - }, - "fee_min_aed": { - "type": [ - "number", - "null" - ] - }, - "free_from_aed": { - "type": [ - "number", - "null" - ] - }, - "free_from_inclusive": { - "type": "boolean" - }, - "minimum_order_aed": { - "type": [ - "number", - "null" - ] - }, - "notes": { - "type": [ - "string", - "null" - ] - }, - "possibly_free_from_aed": { - "type": [ - "number", - "null" - ] - }, - "possibly_free_from_inclusive": { - "type": [ - "boolean", - "null" - ] - }, - "scope": { - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "scope", - "fee_min_aed", - "fee_max_aed", - "free_from_aed", - "free_from_inclusive", - "possibly_free_from_aed", - "possibly_free_from_inclusive", - "minimum_order_aed", - "notes", - "source_url", - "checked_at" - ], - "type": "object" -} - changed
Output schema / $defs / GroceryStore / properties / delivery_rule / anyOfPrevious value: -[ - { - "$ref": "#/$defs/DeliveryRule" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "checked_at": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "fee_max_aed": { + "type": [ + "number", + "null" + ] + }, + "fee_min_aed": { + "type": [ + "number", + "null" + ] + }, + "free_from_aed": { + "type": [ + "number", + "null" + ] + }, + "free_from_inclusive": { + "type": "boolean" + }, + "minimum_order_aed": { + "type": [ + "number", + "null" + ] + }, + "notes": { + "type": [ + "string", + "null" + ] + }, + "possibly_free_from_aed": { + "type": [ + "number", + "null" + ] + }, + "possibly_free_from_inclusive": { + "type": [ + "boolean", + "null" + ] + }, + "scope": { + "type": "string" + }, + "source_url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "scope", + "fee_min_aed", + "fee_max_aed", + "free_from_aed", + "free_from_inclusive", + "possibly_free_from_aed", + "possibly_free_from_inclusive", + "minimum_order_aed", + "notes", + "source_url", + "checked_at" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / $defs / GroceryStore / properties / delivery_rule_status / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryStore / properties / kind / typeRemoved value: -"string" - removed
Output schema / $defs / GroceryStore / properties / provenance / $refRemoved value: -"#/$defs/Provenance" - added
Output schema / $defs / GroceryStore / properties / provenance / additionalPropertiesAdded value: +true - added
Output schema / $defs / GroceryStore / properties / provenance / requiredAdded value: +[ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" +] - added
Output schema / $defs / GroceryStore / properties / provenance / typeAdded value: +"object" - removed
Output schema / $defs / GroceryStoreListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/GroceryStore" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / GroceryStoreResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/GroceryStore" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/GroceryStoreListResponse" - }, - { - "$ref": "#/$defs/GroceryStoreResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/$defs/GroceryStore" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "$ref": "#/$defs/GroceryStore" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
health_insurance8 fields changed- removed
Input schema / properties / emirate / typeRemoved value: -"string" - removed
Output schema / $defs / HealthInsuranceScopeRemoved value: -{ - "additionalProperties": false, - "properties": { - "emirates": { - "items": { - "enum": [ - "dubai", - "abu_dhabi", - "sharjah", - "ajman", - "umm_al_quwain", - "ras_al_khaimah", - "fujairah" - ], - "type": "string" - }, - "type": "array" - }, - "facts": { - "items": { - "additionalProperties": false, - "properties": { - "amount_aed": { - "additionalProperties": false, - "properties": { - "max": { - "type": [ - "number", - "null" - ] - }, - "min": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "min", - "max" - ], - "type": [ - "object", - "null" - ] - }, - "fact_id": { - "type": "string" - }, - "legal_source": { - "additionalProperties": false, - "properties": { - "article": { - "type": [ - "string", - "null" - ] - }, - "document_date": { - "type": [ - "string", - "null" - ] - }, - "doubtful": { - "type": "boolean" - }, - "publisher": { - "type": [ - "string", - "null" - ] - }, - "title": { - "type": "string" - }, - "url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "title", - "publisher", - "url", - "article", - "document_date", - "doubtful" - ], - "type": [ - "object", - "null" - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "fact_id", - "text", - "amount_aed", - "legal_source" - ], - "type": "object" - }, - "type": "array" - }, - "not_published": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notice": { - "type": [ - "string", - "null" - ] - }, - "paused_since": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "scope_id": { - "type": "string" - }, - "status": { - "enum": [ - "ok", - "paused" - ], - "type": "string" - } - }, - "required": [ - "scope_id", - "emirates", - "status", - "notice", - "paused_since", - "facts", - "not_published", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / HealthInsuranceScopeListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/HealthInsuranceScope" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/HealthInsuranceScopeListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "emirates": { + "items": { + "enum": [ + "dubai", + "abu_dhabi", + "sharjah", + "ajman", + "umm_al_quwain", + "ras_al_khaimah", + "fujairah" + ] + }, + "type": "array" + }, + "facts": { + "items": { + "additionalProperties": false, + "properties": { + "amount_aed": { + "additionalProperties": false, + "properties": { + "max": { + "type": [ + "number", + "null" + ] + }, + "min": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "min", + "max" + ], + "type": [ + "object", + "null" + ] + }, + "fact_id": { + "type": "string" + }, + "legal_source": { + "additionalProperties": false, + "properties": { + "article": { + "type": [ + "string", + "null" + ] + }, + "document_date": { + "type": [ + "string", + "null" + ] + }, + "doubtful": { + "type": "boolean" + }, + "publisher": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "title", + "publisher", + "url", + "article", + "document_date", + "doubtful" + ], + "type": [ + "object", + "null" + ] + }, + "text": { + "type": "string" + } + }, + "required": [ + "fact_id", + "text", + "amount_aed", + "legal_source" + ], + "type": "object" + }, + "type": "array" + }, + "not_published": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notice": { + "type": [ + "string", + "null" + ] + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "scope_id": { + "type": "string" + }, + "status": { + "enum": [ + "ok", + "paused" + ] + } + }, + "required": [ + "scope_id", + "emirates", + "status", + "notice", + "paused_since", + "facts", + "not_published", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
housing_rents12 fields changed- removed
Input schema / properties / contract / typeRemoved value: -"string" - removed
Input schema / properties / property_type / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / HousingZoneDetailRemoved value: -{ - "additionalProperties": false, - "properties": { - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "communities_ar": { - "items": { - "type": "string" - }, - "type": "array" - }, - "method": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "name_ar": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rent_contracts": { - "type": [ - "integer", - "null" - ] - }, - "rents": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "sale_transactions": { - "type": [ - "integer", - "null" - ] - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "name_ar", - "communities", - "communities_ar", - "rent_contracts", - "sale_transactions", - "open_in_browser", - "rents", - "sales", - "method", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / HousingZoneListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/HousingZone" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / HousingZoneResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/HousingZoneDetail" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / RentMedian / properties / property_type / typeRemoved value: -"string" - removed
Output schema / $defs / RentMedianListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "rents": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone": { - "$ref": "#/$defs/HousingZone" - } - }, - "required": [ - "zone", - "rents", - "sales" - ], - "type": "object" - }, - "data": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / SaleMedian / properties / market / typeRemoved value: -"string" - removed
Output schema / $defs / SaleMedian / properties / property_type / typeRemoved value: -"string" - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/RentMedianListResponse" - }, - { - "$ref": "#/$defs/HousingZoneListResponse" - }, - { - "$ref": "#/$defs/HousingZoneResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": false, + "properties": { + "rents": { + "items": { + "$ref": "#/$defs/RentMedian" + }, + "type": "array" + }, + "sales": { + "items": { + "$ref": "#/$defs/SaleMedian" + }, + "type": "array" + }, + "zone": { + "$ref": "#/$defs/HousingZone" + } + }, + "required": [ + "zone", + "rents", + "sales" + ], + "type": "object" + }, + "data": { + "items": { + "$ref": "#/$defs/RentMedian" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/$defs/HousingZone" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "communities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "communities_ar": { + "items": { + "type": "string" + }, + "type": "array" + }, + "method": { + "type": [ + "string", + "null" + ] + }, + "name": { + "type": "string" + }, + "name_ar": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rent_contracts": { + "type": [ + "integer", + "null" + ] + }, + "rents": { + "items": { + "$ref": "#/$defs/RentMedian" + }, + "type": "array" + }, + "sale_transactions": { + "type": [ + "integer", + "null" + ] + }, + "sales": { + "items": { + "$ref": "#/$defs/SaleMedian" + }, + "type": "array" + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "name_ar", + "communities", + "communities_ar", + "rent_contracts", + "sale_transactions", + "open_in_browser", + "rents", + "sales", + "method", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
housing_sales12 fields changed- removed
Input schema / properties / market / typeRemoved value: -"string" - removed
Input schema / properties / property_type / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / HousingZoneRemoved value: -{ - "additionalProperties": false, - "properties": { - "communities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "communities_ar": { - "items": { - "type": "string" - }, - "type": "array" - }, - "name": { - "type": "string" - }, - "name_ar": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rent_contracts": { - "type": [ - "integer", - "null" - ] - }, - "sale_transactions": { - "type": [ - "integer", - "null" - ] - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone_id", - "name", - "name_ar", - "communities", - "communities_ar", - "rent_contracts", - "sale_transactions", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / RentMedianRemoved value: -{ - "additionalProperties": false, - "properties": { - "bedrooms": { - "type": "integer" - }, - "contracts": { - "type": "integer" - }, - "display_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "median_annual_aed": { - "type": "number" - }, - "median_monthly_aed": { - "type": [ - "number", - "null" - ] - }, - "new_contracts": { - "anyOf": [ - { - "$ref": "#/$defs/RentSplit" - }, - { - "type": "null" - } - ] - }, - "p25_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "property_type": { - "enum": [ - "apartment", - "villa" - ], - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "renewals": { - "anyOf": [ - { - "$ref": "#/$defs/RentSplit" - }, - { - "type": "null" - } - ] - }, - "zone_id": { - "type": "string" - }, - "zone_name": { - "type": "string" - } - }, - "required": [ - "zone_id", - "zone_name", - "property_type", - "bedrooms", - "contracts", - "median_annual_aed", - "p25_annual_aed", - "p75_annual_aed", - "median_monthly_aed", - "new_contracts", - "renewals", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / SaleMedian / properties / market / typeRemoved value: -"string" - removed
Output schema / $defs / SaleMedian / properties / property_type / typeRemoved value: -"string" - removed
Output schema / $defs / SaleMedianListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "rents": { - "items": { - "$ref": "#/$defs/RentMedian" - }, - "type": "array" - }, - "sales": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "zone": { - "$ref": "#/$defs/HousingZone" - } - }, - "required": [ - "zone", - "rents", - "sales" - ], - "type": "object" - }, - "data": { - "items": { - "$ref": "#/$defs/SaleMedian" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/SaleMedianListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": false, + "properties": { + "rents": { + "items": { + "additionalProperties": false, + "properties": { + "bedrooms": { + "type": "integer" + }, + "contracts": { + "type": "integer" + }, + "display_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "median_annual_aed": { + "type": "number" + }, + "median_monthly_aed": { + "type": [ + "number", + "null" + ] + }, + "new_contracts": { + "anyOf": [ + { + "$ref": "#/$defs/RentSplit" + }, + { + "type": "null" + } + ] + }, + "p25_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "p75_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "property_type": { + "enum": [ + "apartment", + "villa" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "renewals": { + "anyOf": [ + { + "$ref": "#/$defs/RentSplit" + }, + { + "type": "null" + } + ] + }, + "zone_id": { + "type": "string" + }, + "zone_name": { + "type": "string" + } + }, + "required": [ + "zone_id", + "zone_name", + "property_type", + "bedrooms", + "contracts", + "median_annual_aed", + "p25_annual_aed", + "p75_annual_aed", + "median_monthly_aed", + "new_contracts", + "renewals", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "sales": { + "items": { + "$ref": "#/$defs/SaleMedian" + }, + "type": "array" + }, + "zone": { + "additionalProperties": false, + "properties": { + "communities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "communities_ar": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "name_ar": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rent_contracts": { + "type": [ + "integer", + "null" + ] + }, + "sale_transactions": { + "type": [ + "integer", + "null" + ] + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone_id", + "name", + "name_ar", + "communities", + "communities_ar", + "rent_contracts", + "sale_transactions", + "open_in_browser", + "provenance" + ], + "type": "object" + } + }, + "required": [ + "zone", + "rents", + "sales" + ], + "type": "object" + }, + "data": { + "items": { + "$ref": "#/$defs/SaleMedian" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
mobile_internet_plans15 fields changed- removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Input schema / properties / status / typeRemoved value: -"string" - removed
Input schema / properties / type / typeRemoved value: -"string" - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / TelecomPlan / properties / category / typeRemoved value: -"string" - removed
Output schema / $defs / TelecomPlan / properties / price_basis / typeRemoved value: -[ - "string", - "null" -] - removed
Output schema / $defs / TelecomPlan / properties / provenance / $refRemoved value: -"#/$defs/Provenance" - added
Output schema / $defs / TelecomPlan / properties / provenance / additionalPropertiesAdded value: +true - added
Output schema / $defs / TelecomPlan / properties / provenance / requiredAdded value: +[ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" +] - added
Output schema / $defs / TelecomPlan / properties / provenance / typeAdded value: +"object" - removed
Output schema / $defs / TelecomPlan / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / TelecomPlanListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/TelecomPlan" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / TelecomPlanResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/TelecomPlan" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/TelecomPlanListResponse" - }, - { - "$ref": "#/$defs/TelecomPlanResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "$ref": "#/$defs/TelecomPlan" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "$ref": "#/$defs/TelecomPlan" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
move_to_dubai14 fields changed- removed
Input schema / properties / household / additionalPropertiesRemoved value: -false - added
Input schema / properties / household / anyOfAdded value: +[ + { + "additionalProperties": false, + "properties": { + "children": { + "maximum": 10, + "minimum": 0, + "type": "integer" + }, + "status": { + "enum": [ + "single", + "married" + ] + } + }, + "type": [ + "object", + "null" + ] + }, + { + "const": "business_owner" + } +] - removed
Input schema / properties / household / propertiesRemoved value: -{ - "children": { - "maximum": 10, - "minimum": 0, - "type": "integer" - }, - "status": { - "enum": [ - "single", - "married" - ], - "type": "string" - } -} - removed
Input schema / properties / household / typeRemoved value: -[ - "object", - "null" -] - added
Input schema / properties / profitAdded value: +{ + "exclusiveMinimum": 0, + "maximum": 10000000000000, + "type": "number" +} - removed
Input schema / properties / property_type / typeRemoved value: -[ - "string", - "null" -] - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Input schema / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / RelocationEstimateRemoved value: -{ - "additionalProperties": false, - "properties": { - "assumptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "country": { - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variant": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "variant_label": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "iso2", - "name", - "currency", - "tax_year", - "tax_year_period", - "variant", - "variant_label" - ], - "type": "object" - }, - "country_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "disclaimer": { - "type": "string" - }, - "dubai": { - "additionalProperties": false, - "properties": { - "gross_annual_aed": { - "type": "number" - }, - "income_tax_aed": { - "const": 0 - }, - "net_annual_aed": { - "type": "number" - }, - "net_monthly_aed": { - "type": "number" - } - }, - "required": [ - "gross_annual_aed", - "net_annual_aed", - "net_monthly_aed", - "income_tax_aed" - ], - "type": "object" - }, - "dubai_monthly_costs_aed": { - "additionalProperties": false, - "properties": { - "groceries": { - "type": [ - "number", - "null" - ] - }, - "health": { - "type": [ - "number", - "null" - ] - }, - "rent": { - "type": [ - "number", - "null" - ] - }, - "school": { - "type": [ - "number", - "null" - ] - }, - "transport": { - "type": [ - "number", - "null" - ] - }, - "utilities": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ], - "type": "object" - }, - "estimate": { - "const": true - }, - "fx": { - "additionalProperties": false, - "properties": { - "aed_per_unit": { - "type": [ - "number", - "null" - ] - }, - "rates_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "aed_per_unit", - "rates_on", - "source" - ], - "type": "object" - }, - "gross_annual": { - "additionalProperties": false, - "properties": { - "aed": { - "type": [ - "number", - "null" - ] - }, - "amount": { - "type": "number" - }, - "currency": { - "type": "string" - } - }, - "required": [ - "amount", - "currency", - "aed" - ], - "type": "object" - }, - "home": { - "additionalProperties": false, - "properties": { - "breakdown": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "type": "number" - }, - "component_id": { - "type": "string" - }, - "kind": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "component_id", - "label", - "kind", - "amount" - ], - "type": "object" - }, - "type": "array" - }, - "currency": { - "type": "string" - }, - "effective_rate": { - "type": "number" - }, - "effective_rate_percent": { - "type": "number" - }, - "income_tax": { - "type": "number" - }, - "net_annual": { - "type": "number" - }, - "net_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "net_monthly": { - "type": "number" - }, - "social_contributions": { - "type": "number" - } - }, - "required": [ - "currency", - "net_annual", - "net_monthly", - "income_tax", - "social_contributions", - "effective_rate", - "breakdown", - "net_annual_aed" - ], - "type": "object" - }, - "household": { - "additionalProperties": false, - "properties": { - "children": { - "type": "integer" - }, - "status": { - "enum": [ - "single", - "married" - ], - "type": "string" - } - }, - "required": [ - "status", - "children" - ], - "type": "object" - }, - "not_modelled": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "savings": { - "additionalProperties": false, - "properties": { - "costs_complete": { - "type": "boolean" - }, - "dubai_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_costs": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "dubai_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "home_annual_savings": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_net": { - "type": [ - "number", - "null" - ] - }, - "home_monthly_savings": { - "type": [ - "number", - "null" - ] - }, - "missing_costs": { - "items": { - "enum": [ - "rent", - "school", - "groceries", - "utilities", - "transport", - "health" - ], - "type": "string" - }, - "type": "array" - }, - "net_gain_annual": { - "type": [ - "number", - "null" - ] - }, - "net_gain_monthly": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_annual": { - "type": [ - "number", - "null" - ] - }, - "savings_difference_monthly": { - "type": [ - "number", - "null" - ] - }, - "withheld_reason": { - "enum": [ - "rent_unknown", - null - ], - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "home_monthly_net", - "dubai_monthly_net", - "net_gain_monthly", - "net_gain_annual", - "dubai_monthly_costs", - "missing_costs", - "costs_complete", - "dubai_monthly_savings", - "dubai_annual_savings", - "home_monthly_savings", - "home_annual_savings", - "savings_difference_monthly", - "savings_difference_annual", - "withheld_reason" - ], - "type": "object" - }, - "transport_reference": { - "additionalProperties": false, - "properties": { - "car_monthly_aed": { - "type": "number" - }, - "fuel_month": { - "type": "string" - }, - "km_per_day": { - "type": "number" - }, - "public_transport_max_aed": { - "type": "number" - }, - "public_transport_min_aed": { - "type": "number" - }, - "salik_per_day": { - "type": "integer" - } - }, - "required": [ - "car_monthly_aed", - "km_per_day", - "salik_per_day", - "public_transport_min_aed", - "public_transport_max_aed", - "fuel_month" - ], - "type": [ - "object", - "null" - ] - } - }, - "required": [ - "estimate", - "disclaimer", - "country", - "household", - "gross_annual", - "home", - "dubai", - "fx", - "dubai_monthly_costs_aed", - "savings", - "transport_reference", - "notices", - "country_notes", - "not_modelled", - "assumptions", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / RelocationEstimateResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/RelocationEstimate" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / TaxCountryModelRemoved value: -{ - "additionalProperties": false, - "properties": { - "currency": { - "type": "string" - }, - "incomplete_reason": { - "type": [ - "string", - "null" - ] - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "sources": { - "items": { - "additionalProperties": false, - "properties": { - "accessed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "title", - "url", - "accessed_on" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ], - "type": "string" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - }, - "tax_year_period": { - "type": [ - "string", - "null" - ] - }, - "variants": { - "items": { - "additionalProperties": false, - "properties": { - "label": { - "type": "string" - }, - "variant_id": { - "type": "string" - } - }, - "required": [ - "variant_id", - "label" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "iso2", - "name", - "currency", - "status", - "incomplete_reason", - "tax_year", - "tax_year_period", - "variants", - "sources", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / TaxCountryModelListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/TaxCountryModel" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/RelocationEstimateResponse" - }, - { - "$ref": "#/$defs/TaxCountryModelListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "country": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variant": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "variant_label": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "iso2", + "name", + "currency", + "tax_year", + "tax_year_period", + "variant", + "variant_label" + ], + "type": "object" + }, + "country_notes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "disclaimer": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "gross_annual_aed": { + "type": "number" + }, + "income_tax_aed": { + "const": 0 + }, + "net_annual_aed": { + "type": "number" + }, + "net_monthly_aed": { + "type": "number" + } + }, + "required": [ + "gross_annual_aed", + "net_annual_aed", + "net_monthly_aed", + "income_tax_aed" + ], + "type": "object" + }, + "dubai_monthly_costs_aed": { + "additionalProperties": false, + "properties": { + "groceries": { + "type": [ + "number", + "null" + ] + }, + "health": { + "type": [ + "number", + "null" + ] + }, + "rent": { + "type": [ + "number", + "null" + ] + }, + "school": { + "type": [ + "number", + "null" + ] + }, + "transport": { + "type": [ + "number", + "null" + ] + }, + "utilities": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ], + "type": "object" + }, + "estimate": { + "const": true + }, + "fx": { + "additionalProperties": false, + "properties": { + "aed_per_unit": { + "type": [ + "number", + "null" + ] + }, + "rates_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "aed_per_unit", + "rates_on", + "source" + ], + "type": "object" + }, + "groceries_basket": { + "additionalProperties": false, + "properties": { + "estimated_aed": { + "additionalProperties": false, + "properties": { + "high_aed": { + "type": "number" + }, + "low_aed": { + "type": "number" + }, + "value_aed": { + "type": "number" + } + }, + "required": [ + "value_aed", + "low_aed", + "high_aed" + ], + "type": "object" + }, + "items": { + "type": "integer" + }, + "items_estimated": { + "type": "integer" + }, + "items_observed": { + "type": "integer" + }, + "items_unknown": { + "type": "integer" + }, + "note": { + "type": "string" + }, + "observed_aed": { + "type": "number" + } + }, + "required": [ + "items", + "observed_aed", + "estimated_aed", + "items_observed", + "items_estimated", + "items_unknown", + "note" + ], + "type": "object" + }, + "gross_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "home": { + "additionalProperties": false, + "properties": { + "breakdown": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "type": "number" + }, + "component_id": { + "type": "string" + }, + "kind": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "component_id", + "label", + "kind", + "amount" + ], + "type": "object" + }, + "type": "array" + }, + "currency": { + "type": "string" + }, + "effective_rate": { + "type": "number" + }, + "effective_rate_percent": { + "type": "number" + }, + "income_tax": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "net_monthly": { + "type": "number" + }, + "social_contributions": { + "type": "number" + } + }, + "required": [ + "currency", + "net_annual", + "net_monthly", + "income_tax", + "social_contributions", + "effective_rate", + "breakdown", + "net_annual_aed" + ], + "type": "object" + }, + "household": { + "additionalProperties": false, + "properties": { + "children": { + "type": "integer" + }, + "status": { + "enum": [ + "single", + "married" + ] + } + }, + "required": [ + "status", + "children" + ], + "type": "object" + }, + "household_type": { + "const": "business_owner" + }, + "not_modelled": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "owner_comparison": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "dubai": { + "additionalProperties": false, + "properties": { + "free_zone": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "corporate_tax_aed": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": "number" + }, + "saving_annual": { + "type": "number" + }, + "saving_annual_aed": { + "type": "number" + } + }, + "type": "object" + }, + "free_zone_condition": { + "type": "string" + }, + "mainland": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "corporate_tax_aed": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "net_annual_aed": { + "type": "number" + }, + "saving_annual": { + "type": "number" + }, + "saving_annual_aed": { + "type": "number" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "home": { + "additionalProperties": false, + "properties": { + "corporate_tax": { + "type": "number" + }, + "distributed_profit": { + "type": "number" + }, + "dividend_tax": { + "type": "number" + }, + "effective_rate": { + "type": "number" + }, + "net_annual": { + "type": "number" + }, + "total_tax": { + "type": "number" + } + }, + "type": "object" + }, + "leaving": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "observed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "small_business_relief": { + "additionalProperties": true, + "type": "object" + }, + "sources": { + "additionalProperties": true, + "type": "object" + }, + "tax_year": { + "type": "string" + } + }, + "type": "object" + }, + "profit_annual": { + "additionalProperties": false, + "properties": { + "aed": { + "type": [ + "number", + "null" + ] + }, + "amount": { + "type": "number" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "amount", + "currency", + "aed" + ], + "type": "object" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "savings": { + "additionalProperties": false, + "properties": { + "costs_complete": { + "type": "boolean" + }, + "dubai_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_costs": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "dubai_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "home_annual_savings": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_net": { + "type": [ + "number", + "null" + ] + }, + "home_monthly_savings": { + "type": [ + "number", + "null" + ] + }, + "missing_costs": { + "items": { + "enum": [ + "rent", + "school", + "groceries", + "utilities", + "transport", + "health" + ] + }, + "type": "array" + }, + "net_gain_annual": { + "type": [ + "number", + "null" + ] + }, + "net_gain_monthly": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_annual": { + "type": [ + "number", + "null" + ] + }, + "savings_difference_monthly": { + "type": [ + "number", + "null" + ] + }, + "withheld_reason": { + "enum": [ + "rent_unknown", + null + ] + } + }, + "required": [ + "home_monthly_net", + "dubai_monthly_net", + "net_gain_monthly", + "net_gain_annual", + "dubai_monthly_costs", + "missing_costs", + "costs_complete", + "dubai_monthly_savings", + "dubai_annual_savings", + "home_monthly_savings", + "home_annual_savings", + "savings_difference_monthly", + "savings_difference_annual", + "withheld_reason" + ], + "type": "object" + }, + "transport_reference": { + "additionalProperties": false, + "properties": { + "car_monthly_aed": { + "type": "number" + }, + "fuel_month": { + "type": "string" + }, + "km_per_day": { + "type": "number" + }, + "public_transport_max_aed": { + "type": "number" + }, + "public_transport_min_aed": { + "type": "number" + }, + "salik_per_day": { + "type": "integer" + } + }, + "required": [ + "car_monthly_aed", + "km_per_day", + "salik_per_day", + "public_transport_min_aed", + "public_transport_max_aed", + "fuel_month" + ], + "type": [ + "object", + "null" + ] + } + }, + "required": [ + "estimate", + "disclaimer", + "country", + "household", + "gross_annual", + "home", + "dubai", + "fx", + "dubai_monthly_costs_aed", + "savings", + "transport_reference", + "notices", + "country_notes", + "not_modelled", + "assumptions", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "incomplete_reason": { + "type": [ + "string", + "null" + ] + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "accessed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "title", + "url", + "accessed_on" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "complete", + "incomplete" + ] + }, + "tax_year": { + "type": [ + "string", + "null" + ] + }, + "tax_year_period": { + "type": [ + "string", + "null" + ] + }, + "variants": { + "items": { + "additionalProperties": false, + "properties": { + "label": { + "type": "string" + }, + "variant_id": { + "type": "string" + } + }, + "required": [ + "variant_id", + "label" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "iso2", + "name", + "currency", + "status", + "incomplete_reason", + "tax_year", + "tax_year_period", + "variants", + "sources", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
official_shop_prices10 fields changed- removed
Input schema / properties / category / typeRemoved value: -"string" - removed
Input schema / properties / chain_id / typeRemoved value: -"string" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / OfficialShopPriceRemoved value: -{ - "additionalProperties": false, - "properties": { - "brand": { - "type": [ - "string", - "null" - ] - }, - "category": { - "enum": [ - "bread", - "chicken", - "cooking_oil", - "dairy", - "eggs", - "legumes", - "rice", - "sugar" - ], - "type": "string" - }, - "chains": { - "items": { - "additionalProperties": false, - "properties": { - "branches": { - "type": "integer" - }, - "chain_id": { - "enum": [ - "al_maya", - "carrefour", - "emirates_coop", - "lulu", - "nesto", - "safeer", - "spinneys", - "union_coop" - ], - "type": "string" - }, - "chain_name": { - "type": "string" - }, - "median_price_aed": { - "type": "number" - }, - "min_price_aed": { - "type": "number" - }, - "single_branch": { - "type": "boolean" - } - }, - "required": [ - "chain_id", - "chain_name", - "min_price_aed", - "median_price_aed", - "branches", - "single_branch" - ], - "type": "object" - }, - "type": "array" - }, - "excluded_rows": { - "type": "integer" - }, - "low_branch_rows": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "product_id": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "size": { - "additionalProperties": false, - "properties": { - "quantity": { - "type": "number" - }, - "unit": { - "enum": [ - "g", - "ml", - "pc" - ], - "type": "string" - } - }, - "required": [ - "quantity", - "unit" - ], - "type": "object" - } - }, - "required": [ - "product_id", - "name", - "category", - "brand", - "size", - "chains", - "low_branch_rows", - "excluded_rows", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / OfficialShopPriceListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/OfficialShopPrice" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/OfficialShopPriceListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "brand": { + "type": [ + "string", + "null" + ] + }, + "category": { + "enum": [ + "bread", + "chicken", + "cooking_oil", + "dairy", + "eggs", + "legumes", + "rice", + "sugar" + ] + }, + "chains": { + "items": { + "additionalProperties": false, + "properties": { + "branches": { + "type": "integer" + }, + "chain_id": { + "enum": [ + "al_maya", + "carrefour", + "emirates_coop", + "lulu", + "nesto", + "safeer", + "spinneys", + "union_coop" + ] + }, + "chain_name": { + "type": "string" + }, + "median_price_aed": { + "type": "number" + }, + "min_price_aed": { + "type": "number" + }, + "single_branch": { + "type": "boolean" + } + }, + "required": [ + "chain_id", + "chain_name", + "min_price_aed", + "median_price_aed", + "branches", + "single_branch" + ], + "type": "object" + }, + "type": "array" + }, + "excluded_rows": { + "type": "integer" + }, + "low_branch_rows": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "product_id": { + "type": "string" + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "size": { + "additionalProperties": false, + "properties": { + "quantity": { + "type": "number" + }, + "unit": { + "enum": [ + "g", + "ml", + "pc" + ] + } + }, + "required": [ + "quantity", + "unit" + ], + "type": "object" + } + }, + "required": [ + "product_id", + "name", + "category", + "brand", + "size", + "chains", + "low_branch_rows", + "excluded_rows", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
residence_visas16 fields changed- removed
Input schema / properties / route_id / typeRemoved value: -"string" - removed
Output schema / $defs / FeeRemoved value: -{ - "additionalProperties": false, - "properties": { - "alternative_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "amount_aed": { - "type": [ - "number", - "null" - ] - }, - "amount_max_aed": { - "type": [ - "number", - "null" - ] - }, - "fee_id": { - "type": "string" - }, - "optional": { - "type": "boolean" - }, - "percent": { - "type": [ - "number", - "null" - ] - }, - "quote": { - "type": "string" - }, - "when": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "fee_id", - "quote", - "amount_aed", - "amount_max_aed", - "percent", - "when", - "alternative_id", - "optional" - ], - "type": "object" -} - removed
Output schema / $defs / FeeCard / properties / fees / items / $refRemoved value: -"#/$defs/Fee" - added
Output schema / $defs / FeeCard / properties / fees / items / additionalPropertiesAdded value: +false - added
Output schema / $defs / FeeCard / properties / fees / items / propertiesAdded value: +{ + "alternative_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "amount_aed": { + "type": [ + "number", + "null" + ] + }, + "amount_max_aed": { + "type": [ + "number", + "null" + ] + }, + "fee_id": { + "type": "string" + }, + "optional": { + "type": "boolean" + }, + "percent": { + "type": [ + "number", + "null" + ] + }, + "quote": { + "type": "string" + }, + "when": { + "type": [ + "string", + "null" + ] + } +} - added
Output schema / $defs / FeeCard / properties / fees / items / requiredAdded value: +[ + "fee_id", + "quote", + "amount_aed", + "amount_max_aed", + "percent", + "when", + "alternative_id", + "optional" +] - added
Output schema / $defs / FeeCard / properties / fees / items / typeAdded value: +"object" - removed
Output schema / $defs / ResidenceFeeItemRemoved value: -{ - "additionalProperties": false, - "properties": { - "authority": { - "type": [ - "string", - "null" - ] - }, - "card": { - "anyOf": [ - { - "$ref": "#/$defs/FeeCard" - }, - { - "type": "null" - } - ] - }, - "item_id": { - "type": "string" - }, - "paused_since": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "status": { - "enum": [ - "ok", - "paused" - ], - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "item_id", - "title", - "status", - "authority", - "url", - "paused_since", - "card", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / ResidenceFeeItemListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/ResidenceContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/ResidenceFeeItem" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ResidenceRoute / properties / paused_steps / items / properties / step_id / typeRemoved value: -"string" - removed
Output schema / $defs / ResidenceRoute / properties / payer / typeRemoved value: -[ - "string", - "null" -] - removed
Output schema / $defs / ResidenceRoute / properties / route_id / typeRemoved value: -"string" - removed
Output schema / $defs / ResidenceRouteListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/ResidenceContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/ResidenceRoute" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ResidenceRouteResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "$ref": "#/$defs/ResidenceContext" - }, - "data": { - "anyOf": [ - { - "$ref": "#/$defs/ResidenceRoute" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/ResidenceRouteListResponse" - }, - { - "$ref": "#/$defs/ResidenceRouteResponse" - }, - { - "$ref": "#/$defs/ResidenceFeeItemListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "$ref": "#/$defs/ResidenceContext" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "$ref": "#/$defs/ResidenceRoute" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/ResidenceContext" + }, + "data": { + "anyOf": [ + { + "$ref": "#/$defs/ResidenceRoute" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "$ref": "#/$defs/ResidenceContext" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "string", + "null" + ] + }, + "card": { + "anyOf": [ + { + "$ref": "#/$defs/FeeCard" + }, + { + "type": "null" + } + ] + }, + "item_id": { + "type": "string" + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "status": { + "enum": [ + "ok", + "paused" + ] + }, + "title": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "item_id", + "title", + "status", + "authority", + "url", + "paused_since", + "card", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
schools12 fields changed- removed
Input schema / properties / radius_km / typeRemoved value: -"integer" - removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / CompactSchoolRemoved value: -{ - "additionalProperties": false, - "properties": { - "academic_year": { - "type": [ - "string", - "null" - ] - }, - "annual_fee_range": { - "anyOf": [ - { - "$ref": "#/$defs/AedRange" - }, - { - "type": "null" - } - ] - }, - "area": { - "type": [ - "string", - "null" - ] - }, - "bus": { - "anyOf": [ - { - "$ref": "#/$defs/CompactSchoolBus" - }, - { - "type": "null" - } - ] - }, - "curricula": { - "items": { - "type": "string" - }, - "type": "array" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "grade_fee_aed": { - "type": [ - "number", - "null" - ] - }, - "location_approximate": { - "type": [ - "boolean", - "null" - ] - }, - "name": { - "type": "string" - }, - "open_in_browser": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rating": { - "type": [ - "string", - "null" - ] - }, - "school_id": { - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - }, - "uniforms_status": { - "enum": [ - "available", - "paused", - "not_published" - ], - "type": "string" - }, - "website": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "school_id", - "name", - "area", - "curricula", - "rating", - "academic_year", - "annual_fee_range", - "grade_fee_aed", - "website", - "source_url", - "distance_km", - "location_approximate", - "bus", - "uniforms_status", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / CompactSchoolBusRemoved value: -{ - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "source_url": { - "type": "string" - }, - "zones": { - "items": { - "additionalProperties": false, - "properties": { - "annual_aed": { - "type": "number" - }, - "zone": { - "type": "integer" - } - }, - "required": [ - "zone", - "annual_aed" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operator", - "academic_year", - "zones", - "source_url" - ], - "type": "object" -} - removed
Output schema / $defs / CompactSchoolListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "search": { - "additionalProperties": false, - "properties": { - "displayed_count": { - "type": "integer" - }, - "near": { - "type": [ - "string", - "null" - ] - }, - "radius_km": { - "type": [ - "number", - "null" - ] - }, - "remaining_count": { - "type": "integer" - }, - "returned_remaining_count": { - "type": "integer" - }, - "total_schools": { - "type": "integer" - }, - "unlocated": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "total_schools", - "near", - "radius_km", - "unlocated" - ], - "type": "object" - } - }, - "required": [ - "search" - ], - "type": "object" - }, - "data": { - "items": { - "$ref": "#/$defs/CompactSchool" - }, - "type": "array" - }, - "fee_policy": { - "anyOf": [ - { - "$ref": "#/$defs/SchoolFeePolicy" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / GradeFeeRemoved value: -{ - "additionalProperties": false, - "properties": { - "annual_fee_aed": { - "type": "number" - }, - "grade": { - "type": "string" - } - }, - "required": [ - "grade", - "annual_fee_aed" - ], - "type": "object" -} - removed
Output schema / $defs / SchoolRemoved value: -{ - "additionalProperties": false, - "properties": { - "academic_year": { - "type": [ - "string", - "null" - ] - }, - "annual_fee_range": { - "anyOf": [ - { - "$ref": "#/$defs/AedRange" - }, - { - "type": "null" - } - ] - }, - "area": { - "type": [ - "string", - "null" - ] - }, - "bus": { - "anyOf": [ - { - "$ref": "#/$defs/SchoolBus" - }, - { - "type": "null" - } - ] - }, - "curricula": { - "items": { - "type": "string" - }, - "type": "array" - }, - "distance_km": { - "type": [ - "number", - "null" - ] - }, - "fees": { - "items": { - "$ref": "#/$defs/GradeFee" - }, - "type": "array" - }, - "grade_fee_aed": { - "type": [ - "number", - "null" - ] - }, - "location_approximate": { - "type": [ - "boolean", - "null" - ] - }, - "name": { - "type": "string" - }, - "open_in_browser": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rating": { - "type": [ - "string", - "null" - ] - }, - "school_id": { - "type": "string" - }, - "source_url": { - "type": [ - "string", - "null" - ] - }, - "uniforms_status": { - "enum": [ - "available", - "paused", - "not_published" - ], - "type": "string" - }, - "website": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "school_id", - "name", - "area", - "curricula", - "rating", - "academic_year", - "fees", - "annual_fee_range", - "grade_fee_aed", - "website", - "source_url", - "distance_km", - "location_approximate", - "bus", - "uniforms_status", - "open_in_browser", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / SchoolBusRemoved value: -{ - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "operator": { - "type": "string" - }, - "source_url": { - "type": "string" - }, - "zones": { - "items": { - "additionalProperties": false, - "properties": { - "annual_aed": { - "type": "number" - }, - "areas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zone": { - "type": "integer" - } - }, - "required": [ - "zone", - "annual_aed", - "areas" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operator", - "academic_year", - "zones", - "source_url" - ], - "type": "object" -} - removed
Output schema / $defs / SchoolFeePolicy / properties / rules / items / properties / kind / typeRemoved value: -"string" - removed
Output schema / $defs / SchoolResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "additionalProperties": false, - "properties": { - "search": { - "additionalProperties": false, - "properties": { - "displayed_count": { - "type": "integer" - }, - "near": { - "type": [ - "string", - "null" - ] - }, - "radius_km": { - "type": [ - "number", - "null" - ] - }, - "remaining_count": { - "type": "integer" - }, - "returned_remaining_count": { - "type": "integer" - }, - "total_schools": { - "type": "integer" - }, - "unlocated": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "total_schools", - "near", - "radius_km", - "unlocated" - ], - "type": "object" - } - }, - "required": [ - "search" - ], - "type": "object" - }, - "data": { - "anyOf": [ - { - "$ref": "#/$defs/School" - }, - { - "type": "null" - } - ] - }, - "fee_policy": { - "anyOf": [ - { - "$ref": "#/$defs/SchoolFeePolicy" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/CompactSchoolListResponse" - }, - { - "$ref": "#/$defs/SchoolResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": false, + "properties": { + "search": { + "additionalProperties": false, + "properties": { + "displayed_count": { + "type": "integer" + }, + "near": { + "type": [ + "string", + "null" + ] + }, + "radius_km": { + "type": [ + "number", + "null" + ] + }, + "remaining_count": { + "type": "integer" + }, + "returned_remaining_count": { + "type": "integer" + }, + "total_schools": { + "type": "integer" + }, + "unlocated": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "total_schools", + "near", + "radius_km", + "unlocated" + ], + "type": "object" + } + }, + "required": [ + "search" + ], + "type": "object" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": [ + "string", + "null" + ] + }, + "annual_fee_range": { + "anyOf": [ + { + "$ref": "#/$defs/AedRange" + }, + { + "type": "null" + } + ] + }, + "area": { + "type": [ + "string", + "null" + ] + }, + "bus": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "zones": { + "items": { + "additionalProperties": false, + "properties": { + "annual_aed": { + "type": "number" + }, + "zone": { + "type": "integer" + } + }, + "required": [ + "zone", + "annual_aed" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operator", + "academic_year", + "zones", + "source_url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "curricula": { + "items": { + "type": "string" + }, + "type": "array" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "grade_fee_aed": { + "type": [ + "number", + "null" + ] + }, + "location_approximate": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": "string" + }, + "open_in_browser": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rating": { + "type": [ + "string", + "null" + ] + }, + "school_id": { + "type": "string" + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "uniforms_status": { + "enum": [ + "available", + "paused", + "not_published" + ] + }, + "website": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "school_id", + "name", + "area", + "curricula", + "rating", + "academic_year", + "annual_fee_range", + "grade_fee_aed", + "website", + "source_url", + "distance_km", + "location_approximate", + "bus", + "uniforms_status", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "fee_policy": { + "anyOf": [ + { + "$ref": "#/$defs/SchoolFeePolicy" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "additionalProperties": false, + "properties": { + "search": { + "additionalProperties": false, + "properties": { + "displayed_count": { + "type": "integer" + }, + "near": { + "type": [ + "string", + "null" + ] + }, + "radius_km": { + "type": [ + "number", + "null" + ] + }, + "remaining_count": { + "type": "integer" + }, + "returned_remaining_count": { + "type": "integer" + }, + "total_schools": { + "type": "integer" + }, + "unlocated": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "total_schools", + "near", + "radius_km", + "unlocated" + ], + "type": "object" + } + }, + "required": [ + "search" + ], + "type": "object" + }, + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": [ + "string", + "null" + ] + }, + "annual_fee_range": { + "anyOf": [ + { + "$ref": "#/$defs/AedRange" + }, + { + "type": "null" + } + ] + }, + "area": { + "type": [ + "string", + "null" + ] + }, + "bus": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "zones": { + "items": { + "additionalProperties": false, + "properties": { + "annual_aed": { + "type": "number" + }, + "areas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zone": { + "type": "integer" + } + }, + "required": [ + "zone", + "annual_aed", + "areas" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operator", + "academic_year", + "zones", + "source_url" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "curricula": { + "items": { + "type": "string" + }, + "type": "array" + }, + "distance_km": { + "type": [ + "number", + "null" + ] + }, + "fees": { + "items": { + "additionalProperties": false, + "properties": { + "annual_fee_aed": { + "type": "number" + }, + "grade": { + "type": "string" + } + }, + "required": [ + "grade", + "annual_fee_aed" + ], + "type": "object" + }, + "type": "array" + }, + "grade_fee_aed": { + "type": [ + "number", + "null" + ] + }, + "location_approximate": { + "type": [ + "boolean", + "null" + ] + }, + "name": { + "type": "string" + }, + "open_in_browser": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "rating": { + "type": [ + "string", + "null" + ] + }, + "school_id": { + "type": "string" + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "uniforms_status": { + "enum": [ + "available", + "paused", + "not_published" + ] + }, + "website": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "school_id", + "name", + "area", + "curricula", + "rating", + "academic_year", + "fees", + "annual_fee_range", + "grade_fee_aed", + "website", + "source_url", + "distance_km", + "location_approximate", + "bus", + "uniforms_status", + "open_in_browser", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "fee_policy": { + "anyOf": [ + { + "$ref": "#/$defs/SchoolFeePolicy" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
shopper_price_reports8 fields changed- removed
Input schema / properties / sort / typeRemoved value: -"string" - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ShopperReportRemoved value: -{ - "additionalProperties": false, - "properties": { - "moderation_status": { - "const": "accepted" - }, - "product_id": { - "type": "string" - }, - "promo": { - "type": "boolean" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "purchased_on": { - "type": "string" - }, - "report_id": { - "type": "string" - }, - "store_id": { - "type": "string" - }, - "unit_price_aed": { - "type": "number" - } - }, - "required": [ - "report_id", - "product_id", - "store_id", - "purchased_on", - "unit_price_aed", - "promo", - "moderation_status", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / ShopperReportListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "items": { - "$ref": "#/$defs/ShopperReport" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/ShopperReportListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "items": { + "additionalProperties": false, + "properties": { + "moderation_status": { + "const": "accepted" + }, + "product_id": { + "type": "string" + }, + "promo": { + "type": "boolean" + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "purchased_on": { + "type": "string" + }, + "report_id": { + "type": "string" + }, + "store_id": { + "type": "string" + }, + "unit_price_aed": { + "type": "number" + } + }, + "required": [ + "report_id", + "product_id", + "store_id", + "purchased_on", + "unit_price_aed", + "promo", + "moderation_status", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
tax_savings_by_country10 fields changed- removed
Input schema / properties / household / typeRemoved value: -"string" - removed
Output schema / $defs / BusinessOwnersRemoved value: -{ - "additionalProperties": false, - "properties": { - "assumptions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "component_labels": { - "items": { - "additionalProperties": false, - "properties": { - "component_id": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": [ - "component_id", - "label" - ], - "type": "object" - }, - "type": "array" - }, - "default_case": { - "type": [ - "string", - "null" - ] - }, - "leaving_rules": { - "items": { - "additionalProperties": false, - "properties": { - "rule_id": { - "type": "string" - }, - "sources": { - "items": { - "$ref": "#/$defs/SourceDoc" - }, - "type": "array" - }, - "text": { - "type": "string" - } - }, - "required": [ - "rule_id", - "text", - "sources" - ], - "type": "object" - }, - "type": "array" - }, - "not_modelled": { - "items": { - "type": "string" - }, - "type": "array" - }, - "scenarios": { - "items": { - "additionalProperties": false, - "properties": { - "choice": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "corporate_tax": { - "type": [ - "number", - "null" - ] - }, - "dubai": { - "additionalProperties": false, - "properties": { - "free_zone": { - "$ref": "#/$defs/DubaiOwnerOutcome" - }, - "mainland": { - "$ref": "#/$defs/DubaiOwnerOutcome" - } - }, - "required": [ - "mainland", - "free_zone" - ], - "type": "object" - }, - "effective_rate": { - "type": [ - "number", - "null" - ] - }, - "net": { - "type": [ - "number", - "null" - ] - }, - "personal_tax": { - "type": [ - "number", - "null" - ] - }, - "profit": { - "type": "number" - }, - "profit_aed": { - "type": [ - "number", - "null" - ] - }, - "regime": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "total_tax": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "profit", - "profit_aed", - "corporate_tax", - "personal_tax", - "total_tax", - "net", - "effective_rate", - "choice", - "regime", - "dubai" - ], - "type": "object" - }, - "type": "array" - }, - "sources": { - "items": { - "$ref": "#/$defs/SourceDoc" - }, - "type": "array" - }, - "status": { - "enum": [ - "complete", - "incomplete" - ], - "type": "string" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "status", - "tax_year", - "default_case", - "scenarios", - "component_labels", - "assumptions", - "not_modelled", - "leaving_rules", - "sources" - ], - "type": "object" -} - removed
Output schema / $defs / FamilyIndexContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "dubai_corporate", - "fx" - ], - "type": "object" -} - removed
Output schema / $defs / FamilyIndexEntryRemoved value: -{ - "additionalProperties": false, - "properties": { - "business_owners": { - "anyOf": [ - { - "$ref": "#/$defs/BusinessOwners" - }, - { - "type": "null" - } - ] - }, - "currency": { - "type": "string" - }, - "employees": { - "items": { - "additionalProperties": false, - "properties": { - "available": { - "type": "boolean" - }, - "children": { - "type": "integer" - }, - "gross": { - "type": [ - "number", - "null" - ] - }, - "gross_aed": { - "type": [ - "number", - "null" - ] - }, - "household_status": { - "enum": [ - "single", - "married" - ], - "type": "string" - }, - "income_tax": { - "type": [ - "number", - "null" - ] - }, - "label": { - "type": "string" - }, - "net": { - "type": [ - "number", - "null" - ] - }, - "saving": { - "type": [ - "number", - "null" - ] - }, - "saving_aed": { - "type": [ - "number", - "null" - ] - }, - "saving_monthly": { - "type": [ - "number", - "null" - ] - }, - "saving_share": { - "type": [ - "number", - "null" - ] - }, - "scenario_id": { - "type": "string" - }, - "social_contributions": { - "type": [ - "number", - "null" - ] - }, - "statistic_id": { - "type": "string" - } - }, - "required": [ - "scenario_id", - "label", - "statistic_id", - "household_status", - "children", - "available", - "gross", - "gross_aed", - "income_tax", - "social_contributions", - "net", - "saving", - "saving_monthly", - "saving_aed", - "saving_share" - ], - "type": "object" - }, - "type": "array" - }, - "fx_aed_per_unit": { - "type": [ - "number", - "null" - ] - }, - "iso2": { - "type": "string" - }, - "name": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "statistics": { - "items": { - "additionalProperties": false, - "properties": { - "annual_factor": { - "type": "number" - }, - "basis": { - "type": "string" - }, - "label": { - "type": "string" - }, - "measure": { - "type": "string" - }, - "period_label": { - "type": "string" - }, - "population": { - "type": "string" - }, - "published_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "quote": { - "type": [ - "string", - "null" - ] - }, - "source": { - "$ref": "#/$defs/SourceDoc" - }, - "statistic_id": { - "type": "string" - }, - "value": { - "type": "number" - } - }, - "required": [ - "statistic_id", - "label", - "measure", - "value", - "annual_factor", - "period_label", - "basis", - "population", - "published_on", - "source", - "quote" - ], - "type": "object" - }, - "type": "array" - }, - "tax_year": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "iso2", - "name", - "currency", - "tax_year", - "fx_aed_per_unit", - "employees", - "statistics", - "business_owners", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / FamilyIndexListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/FamilyIndexContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/FamilyIndexEntry" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/FamilyIndexListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "additionalProperties": true, + "required": [ + "dubai_corporate", + "fx" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "business_owners": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "component_labels": { + "items": { + "additionalProperties": false, + "properties": { + "component_id": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "required": [ + "component_id", + "label" + ], + "type": "object" + }, + "type": "array" + }, + "default_case": { + "type": [ + "string", + "null" + ] + }, + "leaving_rules": { + "items": { + "additionalProperties": false, + "properties": { + "rule_id": { + "type": "string" + }, + "sources": { + "items": { + "$ref": "#/$defs/SourceDoc" + }, + "type": "array" + }, + "text": { + "type": "string" + } + }, + "required": [ + "rule_id", + "text", + "sources" + ], + "type": "object" + }, + "type": "array" + }, + "not_modelled": { + "items": { + "type": "string" + }, + "type": "array" + }, + "scenarios": { + "items": { + "additionalProperties": false, + "properties": { + "choice": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "corporate_tax": { + "type": [ + "number", + "null" + ] + }, + "dubai": { + "additionalProperties": false, + "properties": { + "free_zone": { + "$ref": "#/$defs/DubaiOwnerOutcome" + }, + "mainland": { + "$ref": "#/$defs/DubaiOwnerOutcome" + } + }, + "required": [ + "mainland", + "free_zone" + ], + "type": "object" + }, + "effective_rate": { + "type": [ + "number", + "null" + ] + }, + "net": { + "type": [ + "number", + "null" + ] + }, + "personal_tax": { + "type": [ + "number", + "null" + ] + }, + "profit": { + "type": "number" + }, + "profit_aed": { + "type": [ + "number", + "null" + ] + }, + "regime": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "total_tax": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "profit", + "profit_aed", + "corporate_tax", + "personal_tax", + "total_tax", + "net", + "effective_rate", + "choice", + "regime", + "dubai" + ], + "type": "object" + }, + "type": "array" + }, + "sources": { + "items": { + "$ref": "#/$defs/SourceDoc" + }, + "type": "array" + }, + "status": { + "enum": [ + "complete", + "incomplete" + ] + }, + "tax_year": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "status", + "tax_year", + "default_case", + "scenarios", + "component_labels", + "assumptions", + "not_modelled", + "leaving_rules", + "sources" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "currency": { + "type": "string" + }, + "employees": { + "items": { + "additionalProperties": false, + "properties": { + "available": { + "type": "boolean" + }, + "children": { + "type": "integer" + }, + "gross": { + "type": [ + "number", + "null" + ] + }, + "gross_aed": { + "type": [ + "number", + "null" + ] + }, + "household_status": { + "enum": [ + "single", + "married" + ] + }, + "income_tax": { + "type": [ + "number", + "null" + ] + }, + "label": { + "type": "string" + }, + "net": { + "type": [ + "number", + "null" + ] + }, + "saving": { + "type": [ + "number", + "null" + ] + }, + "saving_aed": { + "type": [ + "number", + "null" + ] + }, + "saving_monthly": { + "type": [ + "number", + "null" + ] + }, + "saving_share": { + "type": [ + "number", + "null" + ] + }, + "scenario_id": { + "type": "string" + }, + "social_contributions": { + "type": [ + "number", + "null" + ] + }, + "statistic_id": { + "type": "string" + } + }, + "required": [ + "scenario_id", + "label", + "statistic_id", + "household_status", + "children", + "available", + "gross", + "gross_aed", + "income_tax", + "social_contributions", + "net", + "saving", + "saving_monthly", + "saving_aed", + "saving_share" + ], + "type": "object" + }, + "type": "array" + }, + "fx_aed_per_unit": { + "type": [ + "number", + "null" + ] + }, + "iso2": { + "type": "string" + }, + "name": { + "type": "string" + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "statistics": { + "items": { + "additionalProperties": false, + "properties": { + "annual_factor": { + "type": "number" + }, + "basis": { + "type": "string" + }, + "label": { + "type": "string" + }, + "measure": { + "type": "string" + }, + "period_label": { + "type": "string" + }, + "population": { + "type": "string" + }, + "published_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "quote": { + "type": [ + "string", + "null" + ] + }, + "source": { + "$ref": "#/$defs/SourceDoc" + }, + "statistic_id": { + "type": "string" + }, + "value": { + "type": "number" + } + }, + "required": [ + "statistic_id", + "label", + "measure", + "value", + "annual_factor", + "period_label", + "basis", + "population", + "published_on", + "source", + "quote" + ], + "type": "object" + }, + "type": "array" + }, + "tax_year": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "iso2", + "name", + "currency", + "tax_year", + "fx_aed_per_unit", + "employees", + "statistics", + "business_owners", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
today12 fields changed- removed
Output schema / $defs / LinksRemoved value: -{ - "additionalProperties": false, - "properties": { - "docs": { - "type": "string" - }, - "next": { - "type": [ - "string", - "null" - ] - }, - "open_in_browser": { - "type": [ - "string", - "null" - ] - }, - "self": { - "type": "string" - } - }, - "required": [ - "self", - "next", - "open_in_browser", - "docs" - ], - "type": "object" -} - removed
Output schema / $defs / ProvenanceRemoved value: -{ - "additionalProperties": true, - "required": [ - "source_id", - "license_id", - "source_url", - "observed_on", - "observed_at", - "published_on", - "published_at", - "retrieved_at", - "stale", - "status", - "paused_since", - "flags" - ], - "type": "object" -} - removed
Output schema / $defs / ResponseMetaRemoved value: -{ - "additionalProperties": true, - "required": [ - "api_version", - "content_language", - "generated_at", - "currency", - "attribution", - "disclaimer", - "dataset", - "page" - ], - "type": "object" -} - removed
Output schema / $defs / TodayContextRemoved value: -{ - "additionalProperties": true, - "required": [ - "date", - "lead", - "post", - "image" - ], - "type": "object" -} - removed
Output schema / $defs / TodayFuelValuesRemoved value: -{ - "additionalProperties": false, - "properties": { - "diesel": { - "type": "number" - }, - "eplus91": { - "type": "number" - }, - "month": { - "type": "string" - }, - "pct_super98": { - "type": "number" - }, - "previous_month": { - "type": "string" - }, - "previous_super98": { - "type": "number" - }, - "special95": { - "type": "number" - }, - "super98": { - "type": "number" - } - }, - "required": [ - "month", - "super98", - "special95", - "eplus91", - "diesel", - "previous_month", - "previous_super98", - "pct_super98" - ], - "type": "object" -} - removed
Output schema / $defs / TodayItemRemoved value: -{ - "additionalProperties": false, - "properties": { - "item_id": { - "enum": [ - "fuel", - "rent", - "tax_savings", - "school_fees" - ], - "type": "string" - }, - "observed_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "source_label": { - "type": [ - "string", - "null" - ] - }, - "text": { - "type": "string" - }, - "url": { - "type": [ - "string", - "null" - ] - }, - "values": { - "oneOf": [ - { - "$ref": "#/$defs/TodayFuelValues" - }, - { - "$ref": "#/$defs/TodayRentValues" - }, - { - "$ref": "#/$defs/TodayTaxSavingsValues" - }, - { - "$ref": "#/$defs/TodaySchoolFeesValues" - } - ] - } - }, - "required": [ - "item_id", - "text", - "url", - "source_label", - "observed_on", - "values", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / TodayItemListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "anyOf": [ - { - "$ref": "#/$defs/TodayContext" - }, - { - "type": "null" - } - ] - }, - "data": { - "items": { - "$ref": "#/$defs/TodayItem" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "context", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / TodayRentValuesRemoved value: -{ - "additionalProperties": false, - "properties": { - "bedrooms": { - "type": "integer" - }, - "contracts": { - "type": "integer" - }, - "from": { - "type": "string" - }, - "median_annual_aed": { - "type": "number" - }, - "p25_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "p75_annual_aed": { - "type": [ - "number", - "null" - ] - }, - "to": { - "type": "string" - }, - "zone": { - "type": "string" - }, - "zone_id": { - "type": "string" - } - }, - "required": [ - "zone", - "zone_id", - "bedrooms", - "median_annual_aed", - "p25_annual_aed", - "p75_annual_aed", - "contracts", - "from", - "to" - ], - "type": "object" -} - removed
Output schema / $defs / TodaySchoolFeesValuesRemoved value: -{ - "additionalProperties": false, - "properties": { - "academic_year": { - "type": "string" - }, - "highest_aed": { - "type": "number" - }, - "lowest_aed": { - "type": "number" - }, - "schools": { - "type": "integer" - } - }, - "required": [ - "schools", - "lowest_aed", - "highest_aed", - "academic_year" - ], - "type": "object" -} - removed
Output schema / $defs / TodayTaxSavingsValuesRemoved value: -{ - "additionalProperties": false, - "properties": { - "country": { - "type": "string" - }, - "currency": { - "type": "string" - }, - "period_label": { - "type": "string" - }, - "saving_aed": { - "type": "number" - }, - "saving_local": { - "type": "number" - }, - "statistic": { - "type": "string" - }, - "tax_year": { - "type": "string" - } - }, - "required": [ - "country", - "currency", - "saving_local", - "saving_aed", - "statistic", - "period_label", - "tax_year" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/TodayItemListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "context": { + "anyOf": [ + { + "additionalProperties": true, + "required": [ + "date", + "lead", + "post", + "image" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "item_id": { + "enum": [ + "fuel", + "rent", + "tax_savings", + "school_fees" + ] + }, + "observed_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "provenance": { + "additionalProperties": true, + "required": [ + "source_id", + "license_id", + "source_url", + "observed_on", + "observed_at", + "published_on", + "published_at", + "retrieved_at", + "stale", + "status", + "paused_since", + "flags" + ], + "type": "object" + }, + "source_label": { + "type": [ + "string", + "null" + ] + }, + "text": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "values": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "diesel": { + "type": "number" + }, + "eplus91": { + "type": "number" + }, + "month": { + "type": "string" + }, + "pct_super98": { + "type": "number" + }, + "previous_month": { + "type": "string" + }, + "previous_super98": { + "type": "number" + }, + "special95": { + "type": "number" + }, + "super98": { + "type": "number" + } + }, + "required": [ + "month", + "super98", + "special95", + "eplus91", + "diesel", + "previous_month", + "previous_super98", + "pct_super98" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "bedrooms": { + "type": "integer" + }, + "contracts": { + "type": "integer" + }, + "from": { + "type": "string" + }, + "median_annual_aed": { + "type": "number" + }, + "p25_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "p75_annual_aed": { + "type": [ + "number", + "null" + ] + }, + "to": { + "type": "string" + }, + "zone": { + "type": "string" + }, + "zone_id": { + "type": "string" + } + }, + "required": [ + "zone", + "zone_id", + "bedrooms", + "median_annual_aed", + "p25_annual_aed", + "p75_annual_aed", + "contracts", + "from", + "to" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "country": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "period_label": { + "type": "string" + }, + "saving_aed": { + "type": "number" + }, + "saving_local": { + "type": "number" + }, + "statistic": { + "type": "string" + }, + "tax_year": { + "type": "string" + } + }, + "required": [ + "country", + "currency", + "saving_local", + "saving_aed", + "statistic", + "period_label", + "tax_year" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "academic_year": { + "type": "string" + }, + "highest_aed": { + "type": "number" + }, + "lowest_aed": { + "type": "number" + }, + "schools": { + "type": "integer" + } + }, + "required": [ + "schools", + "lowest_aed", + "highest_aed", + "academic_year" + ], + "type": "object" + } + ] + } + }, + "required": [ + "item_id", + "text", + "url", + "source_label", + "observed_on", + "values", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "additionalProperties": false, + "properties": { + "docs": { + "type": "string" + }, + "next": { + "type": [ + "string", + "null" + ] + }, + "open_in_browser": { + "type": [ + "string", + "null" + ] + }, + "self": { + "type": "string" + } + }, + "required": [ + "self", + "next", + "open_in_browser", + "docs" + ], + "type": "object" + }, + "meta": { + "additionalProperties": true, + "required": [ + "api_version", + "content_language", + "generated_at", + "currency", + "attribution", + "disclaimer", + "dataset", + "page" + ], + "type": "object" + } + }, + "required": [ + "meta", + "context", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
- Changed
transport_fares18 fields changed- removed
Input schema / properties / booking / typeRemoved value: -"string" - removed
Input schema / properties / emirate / typeRemoved value: -"string" - removed
Input schema / properties / mode / typeRemoved value: -"string" - removed
Input schema / properties / operator_id / typeRemoved value: -"string" - removed
Output schema / $defs / ParkingTariffsRemoved value: -{ - "additionalProperties": false, - "properties": { - "average_paid_per_hour": { - "additionalProperties": false, - "properties": { - "all_zones_aed": { - "type": [ - "number", - "null" - ] - }, - "by_zone": { - "items": { - "additionalProperties": false, - "properties": { - "aed": { - "type": "number" - }, - "previous_aed": { - "type": [ - "number", - "null" - ] - }, - "zones": { - "type": "string" - } - }, - "required": [ - "zones", - "aed", - "previous_aed" - ], - "type": "object" - }, - "type": "array" - }, - "compared_with": { - "type": "string" - }, - "period": { - "type": "string" - }, - "previous_all_zones_aed": { - "type": [ - "number", - "null" - ] - }, - "what": { - "type": "string" - } - }, - "required": [ - "period", - "compared_with", - "what", - "by_zone", - "all_zones_aed", - "previous_all_zones_aed" - ], - "type": [ - "object", - "null" - ] - }, - "chargeable_hours": { - "items": { - "$ref": "#/$defs/TimeRange" - }, - "type": "array" - }, - "effective_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "emirate": { - "enum": [ - "dubai", - "abu_dhabi", - "sharjah", - "ajman", - "umm_al_quwain", - "ras_al_khaimah", - "fujairah" - ], - "type": "string" - }, - "free_days": { - "type": "string" - }, - "grand_events": { - "additionalProperties": false, - "properties": { - "aed_per_hour": { - "type": "number" - }, - "hours": { - "items": { - "$ref": "#/$defs/TimeRange" - }, - "type": "array" - }, - "where": { - "type": "string" - } - }, - "required": [ - "aed_per_hour", - "hours", - "where" - ], - "type": [ - "object", - "null" - ] - }, - "multi_storey": { - "additionalProperties": false, - "properties": { - "aed_per_hour": { - "type": "number" - }, - "chargeable": { - "type": "string" - }, - "max_aed_over_8_hours_in_24": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "aed_per_hour", - "chargeable", - "max_aed_over_8_hours_in_24" - ], - "type": [ - "object", - "null" - ] - }, - "off_peak_hours": { - "items": { - "$ref": "#/$defs/TimeRange" - }, - "type": "array" - }, - "operator_name": { - "type": "string" - }, - "peak_hours": { - "items": { - "$ref": "#/$defs/TimeRange" - }, - "type": "array" - }, - "posted_hourly_aed": { - "type": "null" - }, - "posted_hourly_note": { - "type": "string" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "seasonal_cards": { - "additionalProperties": false, - "properties": { - "as_of": { - "type": "string" - }, - "options": { - "items": { - "additionalProperties": false, - "properties": { - "option_id": { - "type": "string" - }, - "prices": { - "items": { - "additionalProperties": false, - "properties": { - "aed": { - "type": "number" - }, - "months": { - "type": "integer" - } - }, - "required": [ - "months", - "aed" - ], - "type": "object" - }, - "type": "array" - }, - "zones": { - "type": "string" - } - }, - "required": [ - "option_id", - "zones", - "prices" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "as_of", - "options" - ], - "type": [ - "object", - "null" - ] - }, - "zones": { - "items": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "kind": { - "enum": [ - "on_street", - "off_street" - ], - "type": "string" - }, - "premium_code": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "code", - "kind", - "premium_code" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "emirate", - "operator_name", - "effective_on", - "chargeable_hours", - "peak_hours", - "off_peak_hours", - "free_days", - "zones", - "posted_hourly_aed", - "posted_hourly_note", - "average_paid_per_hour", - "seasonal_cards", - "multi_storey", - "grand_events", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / ParkingTariffsResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "$ref": "#/$defs/TransportReferenceContext" - }, - "data": { - "anyOf": [ - { - "$ref": "#/$defs/ParkingTariffs" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / PublicTransportFare / properties / emirate / typeRemoved value: -"string" - removed
Output schema / $defs / PublicTransportFare / properties / fares / items / properties / per / typeRemoved value: -"string" - removed
Output schema / $defs / PublicTransportFare / properties / operator_id / typeRemoved value: -"string" - removed
Output schema / $defs / PublicTransportFare / properties / status / typeRemoved value: -"string" - removed
Output schema / $defs / PublicTransportFareListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "$ref": "#/$defs/TransportReferenceContext" - }, - "data": { - "items": { - "$ref": "#/$defs/PublicTransportFare" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / TaxiFaresRemoved value: -{ - "additionalProperties": false, - "properties": { - "abu_dhabi": { - "additionalProperties": false, - "properties": { - "notice": { - "type": [ - "string", - "null" - ] - }, - "paused_since": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "enum": [ - "ok", - "paused" - ], - "type": "string" - } - }, - "required": [ - "status", - "notice", - "paused_since" - ], - "type": "object" - }, - "ehail_starting_aed": { - "additionalProperties": false, - "properties": { - "friday": { - "items": { - "$ref": "#/$defs/TaxiBand" - }, - "type": "array" - }, - "weekdays": { - "items": { - "$ref": "#/$defs/TaxiBand" - }, - "type": "array" - }, - "weekends": { - "items": { - "$ref": "#/$defs/TaxiBand" - }, - "type": "array" - } - }, - "required": [ - "weekdays", - "friday", - "weekends" - ], - "type": "object" - }, - "minimum_fare_aed": { - "additionalProperties": false, - "properties": { - "ehail": { - "type": [ - "number", - "null" - ] - }, - "street": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "street", - "ehail" - ], - "type": "object" - }, - "not_included": { - "type": [ - "string", - "null" - ] - }, - "operator_name": { - "type": "string" - }, - "per_km_aed": { - "type": [ - "number", - "null" - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "public_transport": { - "items": { - "$ref": "#/$defs/PublicTransportFare" - }, - "type": "array" - }, - "sharjah_surcharge_aed": { - "type": [ - "number", - "null" - ] - }, - "sharjah_taxi_notice": { - "type": [ - "string", - "null" - ] - }, - "street_hail_starting_aed": { - "items": { - "$ref": "#/$defs/TaxiBand" - }, - "type": "array" - }, - "trip": { - "anyOf": [ - { - "$ref": "#/$defs/TaxiTrip" - }, - { - "type": "null" - } - ] - }, - "waiting_per_minute_aed": { - "type": [ - "number", - "null" - ] - } - }, - "required": [ - "operator_name", - "street_hail_starting_aed", - "ehail_starting_aed", - "per_km_aed", - "minimum_fare_aed", - "waiting_per_minute_aed", - "sharjah_surcharge_aed", - "trip", - "abu_dhabi", - "not_included", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / TaxiFaresResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "data": { - "anyOf": [ - { - "$ref": "#/$defs/TaxiFares" - }, - { - "type": "null" - } - ] - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / TaxiTripRemoved value: -{ - "additionalProperties": false, - "properties": { - "booking": { - "enum": [ - "street_day", - "street_night", - "ehail_offpeak", - "ehail_peak", - "ehail_night" - ], - "type": "string" - }, - "distance_aed": { - "type": "number" - }, - "km": { - "type": "number" - }, - "minimum_aed": { - "type": "number" - }, - "minimum_applied": { - "type": "boolean" - }, - "starting_aed": { - "type": "number" - }, - "surcharge_aed": { - "type": "number" - }, - "to_sharjah": { - "type": "boolean" - }, - "total_aed": { - "type": "number" - }, - "wait_minutes": { - "type": "number" - }, - "waiting_aed": { - "type": "number" - } - }, - "required": [ - "km", - "booking", - "wait_minutes", - "to_sharjah", - "starting_aed", - "distance_aed", - "waiting_aed", - "surcharge_aed", - "minimum_aed", - "minimum_applied", - "total_aed" - ], - "type": "object" -} - removed
Output schema / $defs / TollTariffRemoved value: -{ - "additionalProperties": false, - "properties": { - "effective_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "emirate": { - "enum": [ - "dubai", - "abu_dhabi", - "sharjah", - "ajman", - "umm_al_quwain", - "ras_al_khaimah", - "fujairah" - ], - "type": "string" - }, - "gate_count": { - "type": [ - "integer", - "null" - ] - }, - "gates_named": { - "items": { - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "opened_on": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "road": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "name", - "road", - "opened_on" - ], - "type": "object" - }, - "type": "array" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notice": { - "type": [ - "string", - "null" - ] - }, - "operator_id": { - "enum": [ - "salik", - "darb" - ], - "type": "string" - }, - "operator_name": { - "type": "string" - }, - "paused_since": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "schedule": { - "items": { - "additionalProperties": false, - "properties": { - "aed_per_crossing": { - "type": "number" - }, - "days": { - "enum": [ - "mon_sat", - "sun" - ], - "type": "string" - }, - "hours": { - "items": { - "$ref": "#/$defs/TimeRange" - }, - "type": "array" - }, - "period": { - "enum": [ - "peak", - "off_peak", - "late_night" - ], - "type": "string" - } - }, - "required": [ - "days", - "period", - "hours", - "aed_per_crossing" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "enum": [ - "ok", - "paused" - ], - "type": "string" - } - }, - "required": [ - "operator_id", - "operator_name", - "emirate", - "status", - "notice", - "paused_since", - "effective_on", - "gate_count", - "gates_named", - "schedule", - "notes", - "provenance" - ], - "type": "object" -} - removed
Output schema / $defs / TollTariffListResponseRemoved value: -{ - "additionalProperties": false, - "properties": { - "context": { - "$ref": "#/$defs/TransportReferenceContext" - }, - "data": { - "items": { - "$ref": "#/$defs/TollTariff" - }, - "type": "array" - }, - "links": { - "$ref": "#/$defs/Links" - }, - "meta": { - "$ref": "#/$defs/ResponseMeta" - } - }, - "required": [ - "meta", - "data", - "links" - ], - "type": "object" -} - removed
Output schema / $defs / ToolFailureRemoved value: -{ - "additionalProperties": false, - "properties": { - "error": { - "additionalProperties": false, - "properties": { - "code": { - "type": "string" - }, - "message": { - "type": "string" - }, - "retry_after_s": { - "type": [ - "integer", - "null" - ] - }, - "retryable": { - "type": "boolean" - } - }, - "required": [ - "code", - "message", - "retryable", - "retry_after_s" - ], - "type": "object" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "error", - "request_id" - ], - "type": "object" -} - changed
Output schema / anyOfPrevious value: -[ - { - "$ref": "#/$defs/TaxiFaresResponse" - }, - { - "$ref": "#/$defs/PublicTransportFareListResponse" - }, - { - "$ref": "#/$defs/ParkingTariffsResponse" - }, - { - "$ref": "#/$defs/TollTariffListResponse" - }, - { - "$ref": "#/$defs/ToolFailure" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "abu_dhabi": { + "additionalProperties": false, + "properties": { + "notice": { + "type": [ + "string", + "null" + ] + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "ok", + "paused" + ] + } + }, + "required": [ + "status", + "notice", + "paused_since" + ], + "type": "object" + }, + "ehail_starting_aed": { + "additionalProperties": false, + "properties": { + "friday": { + "items": { + "$ref": "#/$defs/TaxiBand" + }, + "type": "array" + }, + "weekdays": { + "items": { + "$ref": "#/$defs/TaxiBand" + }, + "type": "array" + }, + "weekends": { + "items": { + "$ref": "#/$defs/TaxiBand" + }, + "type": "array" + } + }, + "required": [ + "weekdays", + "friday", + "weekends" + ], + "type": "object" + }, + "minimum_fare_aed": { + "additionalProperties": false, + "properties": { + "ehail": { + "type": [ + "number", + "null" + ] + }, + "street": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "street", + "ehail" + ], + "type": "object" + }, + "not_included": { + "type": [ + "string", + "null" + ] + }, + "operator_name": { + "type": "string" + }, + "per_km_aed": { + "type": [ + "number", + "null" + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "public_transport": { + "items": { + "$ref": "#/$defs/PublicTransportFare" + }, + "type": "array" + }, + "sharjah_surcharge_aed": { + "type": [ + "number", + "null" + ] + }, + "sharjah_taxi_notice": { + "type": [ + "string", + "null" + ] + }, + "street_hail_starting_aed": { + "items": { + "$ref": "#/$defs/TaxiBand" + }, + "type": "array" + }, + "trip": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "booking": { + "enum": [ + "street_day", + "street_night", + "ehail_offpeak", + "ehail_peak", + "ehail_night" + ] + }, + "distance_aed": { + "type": "number" + }, + "km": { + "type": "number" + }, + "minimum_aed": { + "type": "number" + }, + "minimum_applied": { + "type": "boolean" + }, + "starting_aed": { + "type": "number" + }, + "surcharge_aed": { + "type": "number" + }, + "to_sharjah": { + "type": "boolean" + }, + "total_aed": { + "type": "number" + }, + "wait_minutes": { + "type": "number" + }, + "waiting_aed": { + "type": "number" + } + }, + "required": [ + "km", + "booking", + "wait_minutes", + "to_sharjah", + "starting_aed", + "distance_aed", + "waiting_aed", + "surcharge_aed", + "minimum_aed", + "minimum_applied", + "total_aed" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "waiting_per_minute_aed": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "operator_name", + "street_hail_starting_aed", + "ehail_starting_aed", + "per_km_aed", + "minimum_fare_aed", + "waiting_per_minute_aed", + "sharjah_surcharge_aed", + "trip", + "abu_dhabi", + "not_included", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/TransportReferenceContext" + }, + "data": { + "items": { + "$ref": "#/$defs/PublicTransportFare" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/TransportReferenceContext" + }, + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "average_paid_per_hour": { + "additionalProperties": false, + "properties": { + "all_zones_aed": { + "type": [ + "number", + "null" + ] + }, + "by_zone": { + "items": { + "additionalProperties": false, + "properties": { + "aed": { + "type": "number" + }, + "previous_aed": { + "type": [ + "number", + "null" + ] + }, + "zones": { + "type": "string" + } + }, + "required": [ + "zones", + "aed", + "previous_aed" + ], + "type": "object" + }, + "type": "array" + }, + "compared_with": { + "type": "string" + }, + "period": { + "type": "string" + }, + "previous_all_zones_aed": { + "type": [ + "number", + "null" + ] + }, + "what": { + "type": "string" + } + }, + "required": [ + "period", + "compared_with", + "what", + "by_zone", + "all_zones_aed", + "previous_all_zones_aed" + ], + "type": [ + "object", + "null" + ] + }, + "chargeable_hours": { + "items": { + "$ref": "#/$defs/TimeRange" + }, + "type": "array" + }, + "effective_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "emirate": { + "enum": [ + "dubai", + "abu_dhabi", + "sharjah", + "ajman", + "umm_al_quwain", + "ras_al_khaimah", + "fujairah" + ] + }, + "free_days": { + "type": "string" + }, + "grand_events": { + "additionalProperties": false, + "properties": { + "aed_per_hour": { + "type": "number" + }, + "hours": { + "items": { + "$ref": "#/$defs/TimeRange" + }, + "type": "array" + }, + "where": { + "type": "string" + } + }, + "required": [ + "aed_per_hour", + "hours", + "where" + ], + "type": [ + "object", + "null" + ] + }, + "multi_storey": { + "additionalProperties": false, + "properties": { + "aed_per_hour": { + "type": "number" + }, + "chargeable": { + "type": "string" + }, + "max_aed_over_8_hours_in_24": { + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "aed_per_hour", + "chargeable", + "max_aed_over_8_hours_in_24" + ], + "type": [ + "object", + "null" + ] + }, + "off_peak_hours": { + "items": { + "$ref": "#/$defs/TimeRange" + }, + "type": "array" + }, + "operator_name": { + "type": "string" + }, + "peak_hours": { + "items": { + "$ref": "#/$defs/TimeRange" + }, + "type": "array" + }, + "posted_hourly_aed": { + "type": "null" + }, + "posted_hourly_note": { + "type": "string" + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "seasonal_cards": { + "additionalProperties": false, + "properties": { + "as_of": { + "type": "string" + }, + "options": { + "items": { + "additionalProperties": false, + "properties": { + "option_id": { + "type": "string" + }, + "prices": { + "items": { + "additionalProperties": false, + "properties": { + "aed": { + "type": "number" + }, + "months": { + "type": "integer" + } + }, + "required": [ + "months", + "aed" + ], + "type": "object" + }, + "type": "array" + }, + "zones": { + "type": "string" + } + }, + "required": [ + "option_id", + "zones", + "prices" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "as_of", + "options" + ], + "type": [ + "object", + "null" + ] + }, + "zones": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "kind": { + "enum": [ + "on_street", + "off_street" + ] + }, + "premium_code": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "code", + "kind", + "premium_code" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "emirate", + "operator_name", + "effective_on", + "chargeable_hours", + "peak_hours", + "off_peak_hours", + "free_days", + "zones", + "posted_hourly_aed", + "posted_hourly_note", + "average_paid_per_hour", + "seasonal_cards", + "multi_storey", + "grand_events", + "provenance" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "context": { + "$ref": "#/$defs/TransportReferenceContext" + }, + "data": { + "items": { + "additionalProperties": false, + "properties": { + "effective_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "emirate": { + "enum": [ + "dubai", + "abu_dhabi", + "sharjah", + "ajman", + "umm_al_quwain", + "ras_al_khaimah", + "fujairah" + ] + }, + "gate_count": { + "type": [ + "integer", + "null" + ] + }, + "gates_named": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "opened_on": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "road": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "name", + "road", + "opened_on" + ], + "type": "object" + }, + "type": "array" + }, + "notes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notice": { + "type": [ + "string", + "null" + ] + }, + "operator_id": { + "enum": [ + "salik", + "darb" + ] + }, + "operator_name": { + "type": "string" + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "provenance": { + "$ref": "#/$defs/Provenance" + }, + "schedule": { + "items": { + "additionalProperties": false, + "properties": { + "aed_per_crossing": { + "type": "number" + }, + "days": { + "enum": [ + "mon_sat", + "sun" + ] + }, + "hours": { + "items": { + "$ref": "#/$defs/TimeRange" + }, + "type": "array" + }, + "period": { + "enum": [ + "peak", + "off_peak", + "late_night" + ] + } + }, + "required": [ + "days", + "period", + "hours", + "aed_per_crossing" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "enum": [ + "ok", + "paused" + ] + } + }, + "required": [ + "operator_id", + "operator_name", + "emirate", + "status", + "notice", + "paused_since", + "effective_on", + "gate_count", + "gates_named", + "schedule", + "notes", + "provenance" + ], + "type": "object" + }, + "type": "array" + }, + "links": { + "$ref": "#/$defs/Links" + }, + "meta": { + "$ref": "#/$defs/ResponseMeta" + } + }, + "required": [ + "meta", + "data", + "links" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "error": { + "additionalProperties": false, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "retry_after_s": { + "type": [ + "integer", + "null" + ] + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable", + "retry_after_s" + ], + "type": "object" + }, + "request_id": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "error", + "request_id" + ], + "type": "object" + } +]
44 tool updates
- Added
commute_cost - Removed
compare_areas_cost_of_living - Removed
compare_grocery_list - Added
costs_by_area - Added
costs_by_emirate - Added
data_sources - Added
dewa - Removed
estimate_commute_cost - Removed
estimate_move_to_dubai - Removed
find_price_online - Added
fixed_monthly_costs - Added
free_zone_companies - Added
fuel_prices - Added
fx_rates - Removed
get_cost_of_living - Removed
get_dewa_tariff - Removed
get_electronics_prices - Removed
get_fuel_prices - Removed
get_health_insurance - Removed
get_mobile_internet_plans - Removed
get_product - Removed
get_rent_prices - Removed
get_school_fees - Removed
get_school_uniforms - Removed
get_taxi_fares - Removed
get_today - Removed
get_visa_and_company_costs - Added
grocery_compare_list - Added
grocery_products - Added
grocery_stores - Added
health_insurance - Added
housing_rents - Added
housing_sales - Removed
list_stores - Added
mobile_internet_plans - Added
move_to_dubai - Added
official_shop_prices - Added
residence_visas - Added
schools - Removed
search_products - Added
shopper_price_reports - Added
tax_savings_by_country - Added
today - Added
transport_fares
1 tool update
- Changed
compare_grocery_list1 field changed- changed
Output schema / properties / outcome / descriptionPrevious value: -"'single-store' when only one online store has prices for the list: not a comparison (store comparison is paused while we review our sources)."New value: +"'single-store' when only one online store has prices for the list: no store ranking (we only compare stores that allow collecting their prices or have given us permission)."
3 tool updates
- Added
get_health_insurance - Changed
get_school_fees10 fields changed- added
Input schema / properties / nearAdded value: +{ + "description": "Area or community to measure distance from, e.g. \"Jumeirah Park\", \"Dubai Marina\". Straight-line distance from its centre.", + "maxLength": 80, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / radius_kmAdded value: +{ + "description": "With near: keep schools within this straight-line distance. Default 10.", + "enum": [ + 5, + 10, + 15, + 20, + 30 + ], + "type": "integer" +} - added
Output schema / properties / nearAdded value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "approximate": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "radius_km": { + "type": "integer" + } + }, + "required": [ + "name", + "approximate", + "radius_km" + ], + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / near_suggestionsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / properties / schools / items / properties / distance_kmAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / schools / items / properties / location_approximateAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / schools / items / requiredPrevious value: -[ - "id", - "name", - "area", - "curricula", - "rating", - "academic_year", - "fees", - "fee_range_aed", - "grade_fee_aed", - "website", - "source_url", - "uniforms_url", - "bus", - "open_in_browser" -]New value: +[ + "id", + "name", + "area", + "curricula", + "rating", + "academic_year", + "fees", + "fee_range_aed", + "grade_fee_aed", + "website", + "source_url", + "uniforms_url", + "bus", + "distance_km", + "location_approximate", + "open_in_browser" +] - added
Output schema / properties / unlocatedAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / within_30_kmAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] +} - changed
Output schema / requiredPrevious value: -[ - "currency", - "observed_at", - "stale", - "source", - "attribution", - "open_in_browser", - "academic_year", - "historical", - "total_schools", - "count", - "schools", - "grades_available", - "note" -]New value: +[ + "currency", + "observed_at", + "stale", + "source", + "attribution", + "open_in_browser", + "academic_year", + "historical", + "total_schools", + "count", + "schools", + "grades_available", + "near", + "near_suggestions", + "unlocated", + "within_30_km", + "note" +]
- Added
get_taxi_fares
4 tool updates
- Changed
find_price_online4 fields changed- added
Output schema / properties / noticeAdded value: +{ + "type": "string" +} - added
Output schema / properties / sinceAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / state / enumPrevious value: -[ - "ready", - "queued", - "rejected", - "capped" -]New value: +[ + "ready", + "queued", + "rejected", + "capped", + "paused" +] - added
Output schema / properties / statusAdded value: +{ + "description": "Present only when online search is deliberately paused (not an outage). Do not retry; use search_products.", + "enum": [ + "paused" + ] +}
- Added
get_cost_of_living - Changed
get_electronics_prices3 fields changed- added
Output schema / properties / noticeAdded value: +{ + "type": "string" +} - added
Output schema / properties / sinceAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / statusAdded value: +{ + "description": "Present only when this data is deliberately paused (not an outage): 'paused'. Do not retry; the notice says why.", + "enum": [ + "paused" + ] +}
- Changed
get_school_uniforms3 fields changed- added
Output schema / properties / noticeAdded value: +{ + "type": "string" +} - added
Output schema / properties / sinceAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / statusAdded value: +{ + "description": "Present only when this data is deliberately paused (not an outage): 'paused'. Do not retry; the notice says why.", + "enum": [ + "paused" + ] +}
1 tool update
- Changed
get_visa_and_company_costs7 fields changed- added
Output schema / properties / common_pausedAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "type": "string" + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "title", + "authority", + "url", + "paused_since" + ], + "type": "object" + }, + "type": "array" +} - added
Output schema / properties / routes / items / properties / pausedAdded value: +{ + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "type": "string" + }, + "paused_since": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "url": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "kind", + "title", + "authority", + "url", + "paused_since" + ], + "type": "object" + }, + "type": "array" +} - changed
Output schema / properties / routes / items / requiredPrevious value: -[ - "id", - "title", - "description", - "payer", - "payer_note", - "validity", - "steps", - "requirements" -]New value: +[ + "id", + "title", + "description", + "payer", + "payer_note", + "validity", + "steps", + "paused", + "requirements" +] - added
Output schema / properties / unknown_costs / items / properties / authorityAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / unknown_costs / items / properties / urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / properties / unknown_costs / items / requiredPrevious value: -[ - "id", - "reason" -]New value: +[ + "id", + "reason", + "authority", + "url" +] - changed
Output schema / requiredPrevious value: -[ - "currency", - "observed_at", - "stale", - "source", - "attribution", - "open_in_browser", - "observed_date", - "route", - "routes", - "common", - "home_setup", - "unknown_costs", - "company" -]New value: +[ + "currency", + "observed_at", + "stale", + "source", + "attribution", + "open_in_browser", + "observed_date", + "route", + "routes", + "common", + "common_paused", + "home_setup", + "unknown_costs", + "company" +]
1 tool update
- Changed
compare_grocery_list2 fields changed- added
Output schema / properties / outcome / descriptionAdded value: +"'single-store' when only one online store has prices for the list: not a comparison (store comparison is paused while we review our sources)." - added
Output schema / properties / recommended_store / descriptionAdded value: +"With outcome 'single-store' this is the only store with prices, not a recommendation."
1 tool update
- Changed
get_electronics_prices3 fields changed- added
Output schema / properties / noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / pausedAdded value: +{ + "type": "boolean" +} - changed
Output schema / requiredPrevious value: -[ - "currency", - "observed_at", - "stale", - "source", - "attribution", - "open_in_browser", - "query", - "count", - "tracked_models", - "stores", - "models" -]New value: +[ + "currency", + "observed_at", + "stale", + "source", + "attribution", + "open_in_browser", + "query", + "count", + "tracked_models", + "stores", + "paused", + "note", + "models" +]
12 tool updates
- Added
compare_areas_cost_of_living - Added
estimate_commute_cost - Added
estimate_move_to_dubai - Added
get_dewa_tariff - Added
get_electronics_prices - Added
get_fuel_prices - Added
get_mobile_internet_plans - Added
get_rent_prices - Added
get_school_fees - Added
get_school_uniforms - Added
get_today - Added
get_visa_and_company_costs
5 tool updates
- First observed
compare_grocery_list - First observed
find_price_online - First observed
get_product - First observed
list_stores - First observed
search_products
Related MCP Connectors
UAE travel and living cost calculators with the published source behind every number.
UAE Corporate Tax: CT computation, SBR, penalties, free zone test, TP and health-check.
Mid-East govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 9 countries; UAE free.
- auditroOAuthco.auditro
UAE ICV compliance: governed scores, evidence gaps and actions with deterministic numbers.
Related MCP Servers
- AlicenseAqualityDmaintenanceCost-of-living and quality-of-life comparison across ~165 cities: take-home pay, the equivalent salary you'd need, and the safety-net deltas (childcare, healthcare, vacation, parental leave).64 npm2MIT
- AlicenseAqualityBmaintenancePer-unit cost of 13 back-office tasks done by a person vs by software, in the US, Greece and Ukraine, with an official statistic behind every hourly wage. Bundled data, works offline.517 npmMIT
- AlicenseNot gradedqualityBmaintenanceReal prices people actually paid (homes, rents, fuel, energy, groceries, medicines) from official open data, with source, period, sample size and licence on every answer. Read-only, no API key.MIT
- AlicenseNot gradedqualityBmaintenanceProvides queryable access to official UAE open data through MCP tools, resources, and prompts, with bilingual support and multiple data connectors.17 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.