{
  "openapi": "3.1.0",
  "info": {
    "title": "ZipNumbers open data API",
    "version": "1.0.0",
    "description": "Free, key-less, CORS-enabled access to combined US sales tax rates with full jurisdiction breakdowns and Census demographics. Attribution requested.",
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": [
    {
      "url": "https://zipnumbers.com"
    }
  ],
  "paths": {
    "/api/public/rates.json": {
      "get": {
        "summary": "All covered metros with rate components and demographics",
        "responses": {
          "200": {
            "description": "JSON array of metro records"
          }
        }
      }
    },
    "/api/public/rates.csv": {
      "get": {
        "summary": "All covered metros as CSV",
        "responses": {
          "200": {
            "description": "CSV file"
          }
        }
      }
    },
    "/api/public/zip/{zip}": {
      "get": {
        "summary": "One ZIP code: county, ACS demographics, sales tax and area codes",
        "parameters": [
          {
            "name": "zip",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "78701"
          }
        ],
        "responses": {
          "200": {
            "description": "ZIP record"
          },
          "400": {
            "description": "Malformed ZIP code"
          },
          "404": {
            "description": "Unknown ZIP code"
          }
        }
      }
    },
    "/api/public/city/{state}/{city}": {
      "get": {
        "summary": "One metro record",
        "parameters": [
          {
            "name": "state",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "texas"
          },
          {
            "name": "city",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "austin"
          }
        ],
        "responses": {
          "200": {
            "description": "Metro record"
          },
          "404": {
            "description": "Unknown state or city slug"
          }
        }
      }
    }
  }
}