---
title: "Total monthly cost of living vs a stated income"
method: GET
path: "/api/total-cost.json"
---

# Total monthly cost of living vs a stated income

`GET /api/total-cost.json`

## Request

- Base URL: `https://geo-parity.com`
- URL: `https://geo-parity.com/api/total-cost.json`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in query parameter `key`

Sums rent, the everyday basket EXCLUDING rent, out-of-pocket healthcare, and income tax plus employee social contributions, then subtracts the total from a stated monthly income. The basket normally contains rent (47-58% of it), so a naive total that adds a housing figure to the full basket overstates by roughly 60%; this endpoint removes it. For US rows HUD Fair Market Rent is gross rent including tenant-paid utilities, so utilities are removed as well. VAT is never added - purchasing-power data derives from surveyed purchaser prices which already include indirect tax. Rent is measured wherever the housing dataset reaches (25 of the 41) and estimated from the basket for the remaining 16, which are tagged rentBasis=basket rather than dropped. Tax assumes local tax residency, single filer, no deductions. Estimates; not a quote and not tax advice.

## Query parameters

- `income` number, required
- `sort` 'total' | 'remaining' | 'rent' | 'tax' | 'share'
- `country` string
- `maxPctOfIncome` number

## Response `200`

Countries ranked, each with its four cost lines, total, remainder and rent basis.

## Other responses

- `400`: Missing or malformed parameter (no income, non-numeric value, bad sort).
- `422`: Unknown country code.

---

[API](https://skmtc.dev/geo-parity/apis/geo-parity-api.md) · [All operations](https://skmtc.dev/geo-parity/apis/geo-parity-api/llms.txt) · [OpenAPI document](https://skmtc.dev/geo-parity/apis/geo-parity-api/revisions/8ddff47a0806?raw)
