Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Geo-Parity Dossier.json API
version: 1.0.0
description: 'Free, key-less JSON APIs behind geo-parity.com: purchasing power parity, fair global salaries, Schengen 90/180 compliance, cross-timezone meetings, contractor economics, freelance rates, tax-residency day counts, country comparison, cloud region latency, and a digital-nomad visa directory. All GET responses are cacheable; errors return { ok:false, code, message, example }. No key is required: anonymous callers get 1,500 requests/month per IP plus a 30/minute burst cap. An optional API key (Authorization: Bearer gp_live_..., created at /account) only raises those ceilings — responses are identical either way, and a key is metered per account rather than per key. Every response carries X-RateLimit-Limit / -Remaining / -Reset (the minute window) and X-Quota-Limit / -Remaining / -Reset (the calendar month, resetting on the 1st UTC); exceeding either returns 429 with Retry-After and code RATE_LIMITED (slow down) or QUOTA_EXCEEDED (allowance spent — retrying will not help). Figures are informational estimates, not financial/tax/legal advice. Machine discovery: /llms.txt and /.well-known/mcp.json; the same tools are also registered with the browser''s WebMCP ModelContext on every page, executing through /api/mcp.'
contact:
url: https://geo-parity.com
servers:
- url: https://geo-parity.com
security:
- {}
- bearerAuth: []
- apiKeyQuery: []
tags:
- name: Dossier.json
paths:
/api/dossier.json:
get:
operationId: countryDossier
summary: 'One country, every hub: headline figures with their sources'
description: Three to six headline figures per hub (compare, costs, earn, move, work, money) for one country, each with the id of the source that produced it, the MCP tool for detail per section, and a `sources` list derived from what was included. Absent sections mean no data, never null. `income` (monthly USD) unlocks the total-cost figures.
parameters:
- name: country
in: query
required: true
schema:
type: string
description: ISO alpha-2 code
- name: income
in: query
schema:
type: number
minimum: 1
description: Gross monthly income in USD
responses:
'200':
description: Sections, tools, sources, updated, and an attribution block
'400':
description: Missing country (MISSING_PARAMS) or non-positive income (INVALID_PARAM)
'422':
description: Unknown country (UNKNOWN_COUNTRY)
tags:
- Dossier.json
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Optional Geo-Parity API key (gp_live_...), created at /account. Raises the monthly quota and per-minute burst; never changes a response. Metered per account, so extra keys do not add allowance.
apiKeyQuery:
type: apiKey
in: query
name: key
description: The same key, for clients that cannot set headers.
externalDocs:
description: 'Developer guide: quota ladder, error codes, API keys and MCP setup'
url: https://geo-parity.com/developers/