{
  "x-generator": "NSwag v14.7.1.0 (NJsonSchema v11.6.1.0 (Newtonsoft.Json v13.0.0.0))",
  "openapi": "3.0.0",
  "info": {
    "title": "Geodata API",
    "description": "Countries, populated places, postal codes, alternate names and time zones from GeoNames. Supply your API key as Authorization: Bearer <api-key>. Read /docs for examples and usage limits.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://geodata.kvadrati.com"
    }
  ],
  "paths": {
    "/api/GeoData/countries": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "List countries",
        "description": "Returns every country and territory in the imported country-info dataset, ordered by name.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCountries",
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryDto"
                  }
                },
                "example": [
                  {
                    "geoNameId": 3190538,
                    "isoAlpha2": "SI",
                    "isoAlpha3": "SVN",
                    "name": "Slovenia",
                    "capital": "Ljubljana",
                    "currencyCode": "EUR"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/countries/dropdown": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Country dropdown options",
        "description": "Returns compact ISO country identifiers and display names for selection controls.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCountriesDropdown",
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupDto"
                  }
                },
                "example": [
                  {
                    "id": "SI",
                    "name": "Slovenia"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/country/{code}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Find a country",
        "description": "Returns detailed country information for an ISO 3166-1 alpha-2 country code. Example: /api/GeoData/country/SI.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCountry",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 code, for example SI. Case is normalized.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "SI"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountryDto2"
                },
                "example": {
                  "geoNameId": 3190538,
                  "isoAlpha2": "SI",
                  "isoAlpha3": "SVN",
                  "name": "Slovenia",
                  "capital": "Ljubljana",
                  "currencyCode": "EUR"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/cities/{countryCode}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "List populated places",
        "description": "Returns all imported populated places (GeoNames feature class P) in a country, including villages and small settlements; no population threshold. Large countries can produce large responses.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCities",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 country code, for example SI.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "SI"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CityDto"
                  }
                },
                "example": [
                  {
                    "id": 3196359,
                    "name": "Ljubljana",
                    "nameASCII": "Ljubljana",
                    "latitude": 46.0511,
                    "longitude": 14.5051,
                    "timeZone": "Europe/Ljubljana"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/cities/{countryCode}/dropdown": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "City dropdown options",
        "description": "Returns populated-place identifiers and names for the requested country, ordered by name.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCitiesDropdown",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 country code, for example SI.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "SI"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupDto"
                  }
                },
                "example": [
                  {
                    "id": "3196359",
                    "name": "Ljubljana"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/city/{id}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Find a place by GeoNames ID",
        "description": "Returns the place record for a stable GeoNames integer identifier. Example: 3196359 (Ljubljana).\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetCity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Positive GeoNames identifier, for example 3196359.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1,
            "example": 3196359
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CityDto2"
                },
                "example": {
                  "id": 3196359,
                  "name": "Ljubljana",
                  "nameASCII": "Ljubljana",
                  "latitude": 46.0511,
                  "longitude": 14.5051,
                  "timeZone": "Europe/Ljubljana",
                  "postalCode": "1000"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/postal-codes/{countryCode}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "List postal places",
        "description": "Returns all postal-place records for a country. A postal code may appear more than once because it can serve multiple places.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetPostalCodesByCountry",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 country code, for example SI.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "SI"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostalCodeDto"
                  }
                },
                "example": [
                  {
                    "countryCode": "SI",
                    "code": "1000",
                    "placeName": "Ljubljana",
                    "adminName1": "Ljubljana",
                    "latitude": 46.0511,
                    "longitude": 14.5051,
                    "accuracy": 4
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/postal-codes/{countryCode}/{cityName}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Find postal codes for a place",
        "description": "Returns postal records matching the country and place name. URL-encode spaces and non-ASCII characters. Example: /api/GeoData/postal-codes/SI/Ljubljana.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetPostalCodesByCountryAndCity",
        "parameters": [
          {
            "name": "countryCode",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 country code, for example SI.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "SI"
          },
          {
            "name": "cityName",
            "in": "path",
            "required": true,
            "description": "Postal place name, for example Ljubljana.",
            "schema": {
              "type": "string"
            },
            "x-position": 2,
            "example": "Ljubljana"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PostalCodeDto2"
                  }
                },
                "example": [
                  {
                    "countryCode": "SI",
                    "code": "1000",
                    "placeName": "Ljubljana",
                    "adminName1": "Ljubljana",
                    "latitude": 46.0511,
                    "longitude": 14.5051,
                    "accuracy": 4
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/alternative-names/{geoNameId}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "List alternate names",
        "description": "Returns language-specific alternate names, including preferred, short, historic and colloquial flags. All languages are imported.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetAlternativeName",
        "parameters": [
          {
            "name": "geoNameId",
            "in": "path",
            "required": true,
            "description": "Stable GeoNames identifier, for example 3196359.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "x-position": 1,
            "example": 3196359
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AlternativeNameDto"
                  }
                },
                "example": [
                  {
                    "geoNameId": 3196359,
                    "isoLanguage": "sl",
                    "name": "Ljubljana",
                    "isPreferredName": true,
                    "isShortName": false,
                    "isColloquial": false,
                    "isHistoric": false
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/timezones": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "List time zones",
        "description": "Returns imported IANA time-zone identifiers and country codes. GeoNames offsets are reference offsets, not a live daylight-saving conversion service.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetTimeZones",
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LookupDto"
                  }
                },
                "example": [
                  {
                    "id": "Europe/Ljubljana",
                    "name": "Europe/Ljubljana"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/timezone": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Find a time zone.",
        "description": "Returns a time zone using its IANA identifier, including slashes. Example: /api/GeoData/timezone/Europe/Ljubljana. January/July offsets come from the source snapshot. Authenticate with an API key in the Authorization header.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetTimeZone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "IANA identifier, for example Europe/Ljubljana.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "Europe/Ljubljana"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeZoneDto"
                },
                "example": {
                  "geoNameId": 3190538,
                  "isoAlpha2": "SI",
                  "isoAlpha3": "SVN",
                  "name": "Slovenia",
                  "capital": "Ljubljana",
                  "currencyCode": "EUR"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    },
    "/api/GeoData/latlong/{name}": {
      "get": {
        "tags": [
          "GeoData"
        ],
        "summary": "Find coordinates by name",
        "description": "Returns geographic features whose primary name exactly matches the supplied name. Multiple places can share a name. Coordinates use WGS84 decimal degrees.\n\nSend `Authorization: Bearer <your-api-key>`. Collections return an empty array when no matches exist.\n\nThe response example is illustrative and may omit optional fields; consult the schema for the full response contract.",
        "operationId": "GetLatLongByName",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "Exact primary geographic name, for example Ljubljana.",
            "schema": {
              "type": "string"
            },
            "x-position": 1,
            "example": "Ljubljana"
          }
        ],
        "responses": {
          "200": {
            "description": "The matching geographic records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LatLongDto"
                  }
                },
                "example": [
                  {
                    "id": 3196359,
                    "name": "Ljubljana",
                    "latitude": 46.0511,
                    "longitude": 14.5051,
                    "timeZone": "Europe/Ljubljana"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Invalid request values.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Missing or malformed API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Unknown or inactive API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "The requested individual record does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "429": {
            "description": "The hourly request allowance is exhausted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected processing error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "CountryDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "geoNameId": {
            "type": "integer",
            "format": "int32"
          },
          "isoAlpha2": {
            "type": "string",
            "nullable": true
          },
          "isoAlpha3": {
            "type": "string",
            "nullable": true
          },
          "isoAlphaNumberic": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "capital": {
            "type": "string",
            "nullable": true
          },
          "area": {
            "type": "number",
            "format": "double"
          },
          "population": {
            "type": "integer",
            "format": "int64"
          },
          "continent": {
            "type": "string",
            "nullable": true
          },
          "tld": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "currencyName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "postalCodeFormat": {
            "type": "string",
            "nullable": true
          },
          "postalCodeRegex": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "additionalProperties": {
          "nullable": true
        },
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LookupDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CountryDto2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "geoNameId": {
            "type": "integer",
            "format": "int32"
          },
          "isoAlpha2": {
            "type": "string",
            "nullable": true
          },
          "isoAlpha3": {
            "type": "string",
            "nullable": true
          },
          "isoAlphaNumberic": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "capital": {
            "type": "string",
            "nullable": true
          },
          "area": {
            "type": "number",
            "format": "double"
          },
          "population": {
            "type": "integer",
            "format": "int64"
          },
          "continent": {
            "type": "string",
            "nullable": true
          },
          "tld": {
            "type": "string",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "currencyName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "postalCodeFormat": {
            "type": "string",
            "nullable": true
          },
          "postalCodeRegex": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CityDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "nameASCII": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitudeDms": {
            "type": "string",
            "nullable": true
          },
          "longitudeDms": {
            "type": "string",
            "nullable": true
          },
          "population": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "elevation": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "timeZone": {
            "type": "string",
            "nullable": true
          },
          "timeZoneShort": {
            "type": "string",
            "nullable": true
          },
          "gmtOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "dstOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "rawOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "alternativeNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CityDto2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "nameASCII": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitudeDms": {
            "type": "string",
            "nullable": true
          },
          "longitudeDms": {
            "type": "string",
            "nullable": true
          },
          "population": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "elevation": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "timeZone": {
            "type": "string",
            "nullable": true
          },
          "timeZoneShort": {
            "type": "string",
            "nullable": true
          },
          "gmtOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "dstOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "rawOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "alternativeNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PostalCodeDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "placeName": {
            "type": "string",
            "nullable": true
          },
          "adminName1": {
            "type": "string",
            "nullable": true
          },
          "adminCode1": {
            "type": "string",
            "nullable": true
          },
          "adminName2": {
            "type": "string",
            "nullable": true
          },
          "adminCode2": {
            "type": "string",
            "nullable": true
          },
          "adminName3": {
            "type": "string",
            "nullable": true
          },
          "adminCode3": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "distanceTo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "accuracy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "PostalCodeDto2": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "countryCode": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "placeName": {
            "type": "string",
            "nullable": true
          },
          "adminName1": {
            "type": "string",
            "nullable": true
          },
          "adminCode1": {
            "type": "string",
            "nullable": true
          },
          "adminName2": {
            "type": "string",
            "nullable": true
          },
          "adminCode2": {
            "type": "string",
            "nullable": true
          },
          "adminName3": {
            "type": "string",
            "nullable": true
          },
          "adminCode3": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "distanceTo": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "accuracy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "AlternativeNameDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "geoNameId": {
            "type": "integer",
            "format": "int32"
          },
          "isoLanguage": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "isPreferredName": {
            "type": "boolean"
          },
          "isShortName": {
            "type": "boolean"
          },
          "isColloquial": {
            "type": "boolean"
          },
          "isHistoric": {
            "type": "boolean"
          },
          "fromDate": {
            "type": "string",
            "nullable": true
          },
          "toDate": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TimeZoneDto": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "gmtOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "dstOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "rawOffset": {
            "type": "number",
            "format": "decimal",
            "nullable": true
          },
          "timeZoneShort": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "LatLongDto": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "latitudeDms": {
            "type": "string",
            "nullable": true
          },
          "longitudeDms": {
            "type": "string",
            "nullable": true
          },
          "timeZone": {
            "type": "string",
            "nullable": true
          },
          "timeZoneShort": {
            "type": "string",
            "nullable": true
          },
          "alternativeNames": {
            "type": "string",
            "nullable": true
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "Enter Bearer followed by your API key. This is an API key, not a JWT. Example: Bearer <your-api-key>.",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ]
}