MAC Address Vendor Lookup API
Find the manufacturer of a MAC address from the IEEE registries (MA-L, MA-M, MA-S), flag random / locally administered MACs, convert formats; batch.
Send a MAC address in any notation (00:1A:2B:3C:4D:5E, 00-1a-2b-…, 001a.2b3c.4d5e, 001A2B3C4D5E), an OUI prefix or an EUI-64 and get the organisation the block is registered to, with the IEEE registry (MA-L 24-bit OUI, MA-M 28-bit, MA-S 36-bit, legacy IAB, CID company IDs), the assigned prefix, the country and address of the registration. The longest matching block wins, so devices of small companies inside an MA-M or MA-S block are named correctly.
The address bits are decoded: unicast / multicast, broadcast, universally or locally administered, the IEEE 802c SLAP quadrant, and randomized: true for locally administered unicast addresses, used by phones, laptops and Wi-Fi privacy features (those identify no manufacturer). For a full MAC the API also gives the four usual notations, the modified EUI-64 interface identifier and the matching IPv6 link-local address. POST macs (up to 1000) for a batch.
Data: the public listings of the IEEE Registration Authority, refreshed weekly. Blocks bought as "private" listings show the name Private. A MAC address can be changed in software, so the vendor is a hint, not a proof of the device type.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
mac | query|path | string | no | MAC address, OUI prefix (6, 7 or 9 hex digits) or EUI-64, any separators. Also in the path: /v1/mac-vendor/00:00:0C:12:34:56. | |
macs | body | array | no | Batch: up to 1000 addresses (array or separated by new lines, commas, spaces). |
Example
curl "https://apibox.io.vn/v1/mac-vendor?mac=00:00:0C:12:34:56" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/mac-vendor?mac=00:00:0C:12:34:56', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/mac-vendor?mac=00:00:0C:12:34:56",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/mac-vendor?mac=00:00:0C:12:34:56');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Response
{
"input": "00:00:0C:12:34:56",
"valid": true,
"kind": "EUI-48",
"formats": {
"colon": "00:00:0C:12:34:56",
"hyphen": "00-00-0C-12-34-56",
"dot": "0000.0c12.3456",
"bare": "00000C123456"
},
"unicast": true,
"multicast": false,
"broadcast": false,
"universally_administered": true,
"locally_administered": false,
"randomized": false,
"eui64_interface_id": "200:cff:fe12:3456",
"ipv6_link_local": "fe80::200:cff:fe12:3456",
"vendor": {
"name": "Cisco Systems, Inc",
"registry": "MA-L",
"registry_name": "MAC Address Block Large (24-bit OUI, 16M addresses)",
"assignment": "00000C",
"country": "US",
"address": "170 WEST TASMAN DRIVE SAN JOSE CA US 95134-1706 US",
"private": false
},
"data_version": "20261111",
"source": "IEEE Registration Authority public listings (MA-L, MA-M, MA-S, IAB, CID)"
}
Use cases
- Show device brands in network inventory, DHCP and Wi-Fi controller dashboards
- Spot randomized MACs in captive portals and Wi-Fi analytics
- Identify unknown IoT devices on a LAN scan
- Normalise MAC addresses from different switches and logs
FAQ
Why does my phone show no vendor?
Modern iOS, Android and Windows use a random, locally administered MAC per network; it is flagged randomized: true and belongs to no manufacturer.
What do MA-L, MA-M and MA-S mean?
They are IEEE block sizes: MA-L assigns the first 24 bits (16 million addresses), MA-M 28 bits (1 million) and MA-S 36 bits (4096).
How often is the data updated?
The IEEE listings are downloaded and checked weekly; the response gives data_version.
Related APIs
IP Geolocation
Look up the country, region, city, coordinates, ASN and ISP of any IPv4 or IPv6 address – or your own IP – in one fast JSON call.
DNSDNS Lookup
Query A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, SRV and more for any domain, or reverse-lookup an IP (PTR), via DNS over HTTPS. Clean JSON output.
@Email Validator
Validate e-mail addresses: syntax, MX/A records, ~120k disposable domains, role accounts, free providers and typo hints like gmial.com → gmail.com.