{
  "openapi": "3.1.0",
  "info": {
    "title": "GeoJSON Places API",
    "summary": "Continents, countries, regions, states with GeoJSON geometries.",
    "description": "Fastify service backed by the geojson-places dataset. Full Swagger UI at the root URL. Routes: /continent, /country, /region, /state, /search.",
    "version": "1.0.0",
    "contact": {
      "name": "baditaflorin",
      "url": "https://github.com/baditaflorin/geo-places"
    },
    "x-canonical-openapi": "https://geo-places.0exec.com/json"
  },
  "servers": [
    {
      "url": "https://geo-places.0exec.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "geo"
    },
    {
      "name": "geojson"
    },
    {
      "name": "places"
    }
  ],
  "paths": {
    "/continent": {
      "get": {
        "summary": "List continents",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/country": {
      "get": {
        "summary": "List countries",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        }
      }
    },
    "/country/{code}": {
      "get": {
        "summary": "Country by ISO code",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 code, e.g. RO",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/country/{code}/regions": {
      "get": {
        "summary": "Regions in country",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Country code",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/region/{code}": {
      "get": {
        "summary": "Region by code",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "Region code",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/state/{code}": {
      "get": {
        "summary": "State by code",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "State code",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/search": {
      "get": {
        "summary": "Search places",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/search/reverse": {
      "get": {
        "summary": "Reverse geocode",
        "responses": {
          "200": {
            "description": "application/json"
          },
          "400": {
            "description": "Bad request \u2014 missing/invalid params"
          },
          "500": {
            "description": "Server error"
          }
        },
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "required": true,
            "description": "Latitude",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lon",
            "in": "query",
            "required": true,
            "description": "Longitude",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/.deploy/version.json": {
      "get": {
        "summary": "Deploy metadata (gateway-served)",
        "responses": {
          "200": {
            "description": "JSON with service, commit, build_date"
          }
        },
        "tags": [
          "meta"
        ]
      }
    },
    "/_gw_health": {
      "get": {
        "summary": "Gateway-level liveness (always 200 if gateway up)",
        "responses": {
          "200": {
            "description": "ok"
          }
        },
        "tags": [
          "meta"
        ]
      }
    },
    "/openapi.json": {
      "get": {
        "summary": "This OpenAPI document",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 spec"
          }
        },
        "tags": [
          "meta"
        ]
      }
    },
    "/llms.txt": {
      "get": {
        "summary": "LLM-friendly plain-text description of this service",
        "responses": {
          "200": {
            "description": "text/plain"
          }
        },
        "tags": [
          "meta"
        ]
      }
    }
  },
  "components": {}
}
