{
  "openapi": "3.1.0",
  "info": {
    "title": "macvendors.co.uk MAC Address Lookup API",
    "version": "1.0.0",
    "description": "Resolve a MAC address or IEEE prefix to the registered organisation using longest-prefix matching."
  },
  "servers": [{"url": "https://macvendors.co.uk/api"}],
  "paths": {
    "/mac_lookup/{mac_address}": {
      "get": {
        "summary": "Look up a MAC address vendor",
        "operationId": "lookupMacAddressVendor",
        "parameters": [{
          "name": "mac_address",
          "in": "path",
          "required": true,
          "description": "A 6 to 12 digit hexadecimal prefix or MAC address. Colon, dash, dot and space-separated forms are accepted when URL encoded.",
          "schema": {"type": "string"},
          "example": "001B2C3D4E00"
        }],
        "responses": {
          "200": {
            "description": "The registered vendor was found, or the address is locally administered.",
            "content": {"application/json": {
              "schema": {"$ref": "#/components/schemas/LookupResult"},
              "examples": {
                "registered": {"value": {"mac_prefix": "001B2C", "vendor": "Example Vendor"}},
                "locallyAdministered": {"value": {"mac_prefix": "020000", "vendor": "AUTO GENERATED"}}
              }
            }}
          },
          "400": {
            "description": "The address format is invalid.",
            "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}
          },
          "404": {
            "description": "No registered assignment was found.",
            "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}
          },
          "429": {"description": "Request volume was temporarily limited. Retry later using exponential backoff."},
          "503": {"description": "The service is temporarily unavailable. Retry later using exponential backoff."}
        }
      }
    }
  },
  "components": {
    "schemas": {
      "LookupResult": {
        "type": "object",
        "required": ["mac_prefix", "vendor"],
        "properties": {
          "mac_prefix": {
            "type": "string",
            "description": "The first six hexadecimal characters retained for response compatibility.",
            "pattern": "^[0-9A-F]{6}$"
          },
          "vendor": {"type": "string"}
        },
        "additionalProperties": false
      },
      "Error": {
        "type": "object",
        "required": ["message"],
        "properties": {"message": {"type": "string"}},
        "additionalProperties": false
      }
    }
  },
  "externalDocs": {
    "description": "API documentation and examples",
    "url": "https://macvendors.co.uk/mac-address-lookup-api"
  }
}
