{
  "info": {
    "description": "HTTP API for geodata lookups via geogrep.",
    "title": "geogrep Web API",
    "version": "0.5.0"
  },
  "openapi": "3.0.3",
  "paths": {
    "/api/find/auto/{value}": {
      "get": {
        "parameters": [
          {
            "description": "Lookup value",
            "example": "auto",
            "in": "path",
            "name": "value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup result"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "Auto detect and lookup"
      }
    },
    "/api/find/domain/{value}": {
      "get": {
        "parameters": [
          {
            "description": "Lookup value",
            "example": "domain",
            "in": "path",
            "name": "value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup result"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "Lookup as domain"
      }
    },
    "/api/find/ipv4/{value}": {
      "get": {
        "parameters": [
          {
            "description": "Lookup value",
            "example": "ipv4",
            "in": "path",
            "name": "value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup result"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "Lookup as IPv4 or CIDR"
      }
    },
    "/api/find/ipv6/{value}": {
      "get": {
        "parameters": [
          {
            "description": "Lookup value",
            "example": "ipv6",
            "in": "path",
            "name": "value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup result"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "Lookup as IPv6 or CIDR"
      }
    },
    "/api/find/keyword/{value}": {
      "get": {
        "parameters": [
          {
            "description": "Lookup value",
            "example": "keyword",
            "in": "path",
            "name": "value",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lookup result"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "Lookup as keyword"
      }
    },
    "/api/list-category/{pattern}": {
      "get": {
        "parameters": [
          {
            "description": "Case-insensitive category search text",
            "example": "cn",
            "in": "path",
            "name": "pattern",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include MMDB/MetaDB category data",
            "example": true,
            "in": "query",
            "name": "include_mmdb",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Category listing"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "List category names by text"
      }
    },
    "/api/list/{ruleset}": {
      "get": {
        "parameters": [
          {
            "description": "Ruleset or category name",
            "example": "cn",
            "in": "path",
            "name": "ruleset",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Include MMDB/MetaDB data using a generated category cache",
            "example": true,
            "in": "query",
            "name": "include_mmdb",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ruleset listing"
          },
          "400": {
            "description": "Bad request"
          },
          "405": {
            "description": "Method not allowed"
          }
        },
        "summary": "List rules from a ruleset"
      }
    },
    "/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Service is healthy"
          }
        },
        "summary": "Health check"
      }
    },
    "/openapi.json": {
      "get": {
        "responses": {
          "200": {
            "description": "OpenAPI JSON"
          }
        },
        "summary": "OpenAPI document"
      }
    }
  },
  "servers": [
    {
      "url": "http://geogrep.airium.net"
    }
  ]
}
