Migration guide
A macvendors.com API alternative you can switch to in one request.
macadress.com's keyless vendor endpoint returns the same thing macvendors.com's does: the plain-text vendor name for a MAC address, no key and no signup. Moving over is a base-URL change. This page covers what stays the same, the one response difference to handle, and when staying on macvendors is the right call.
Checked against macvendors.com/api on September 2, 2026. Their limits and responses can change; treat their docs as the source of truth for their side.
What stays the same
- No API key, no account, no
Authorizationheader 200with the bare vendor name astext/plain, e.g.Apple, Inc.- Same MAC formats: colons, dashes, dots, or bare hex
- Same free daily allowance: 1,000 lookups a day
- A
404still means "no vendor for this address"
What changes
- Base URL:
api.macvendors.com/<mac>becomesapi.macadress.com/v1/vendor/<mac> - Error body: macvendors returns JSON on a miss (
{"errors":{"detail":"Not Found"}}). macadress returns plain text:not registered, orlocally administeredfor a privacy-randomized address. If you parse the JSON error, switch to reading the status code and the text body. - Rate limit: macvendors allows 1 request per second. macadress allows 60 per minute per IP, so short bursts go through instead of getting a
429.
Side by side
Behavior comparison
macadress facts are from this site's own endpoint reference. macvendors facts are from their API page and a live check on September 2, 2026.
| api.macvendors.com | api.macadress.com/v1/vendor | |
|---|---|---|
| API key / signup | None | None |
| Success response | 200, text/plain, vendor string | 200, text/plain, vendor string |
| Unknown / unregistered MAC | 404, JSON {"errors":{"detail":"Not Found"}} | 404, text not registered |
| Locally administered (randomized) MAC | 404, same as unknown | 404, text locally administered, told apart from unregistered |
| Rate limit | 1 request / second | 60 requests / minute per IP |
| Daily cap (no key) | 1,000 / day | 1,000 / day per IP, resets 00:00 UTC |
| Over the limit | 429, JSON error | 429 with a Retry-After header |
| Browser (CORS) | Not documented | Access-Control-Allow-Origin: * |
| OUI-only lookup | Full MAC | Full MAC or the bare 6-hex OUI |
| Batch lookups | None | POST /v1/mac/batch, up to 100 per call, with a free key |
| OUI, IEEE block, country, randomization confidence | Not offered | GET /v1/mac/:mac returns them as JSON, with a free key |
| Data source | IEEE registry | IEEE MA-L/MA-M/MA-S/IAB/CID, re-synced on a schedule, sync date in a response header |
| Paid / self-hosted path | macvendors.com plans | Paid plans and a self-hosted license |
curl
# before
curl https://api.macvendors.com/00:03:93:AB:12:34
# after: same request, new host and path
curl https://api.macadress.com/v1/vendor/00:03:93:AB:12:34
Python
import requests
# before
r = requests.get(f"https://api.macvendors.com/{mac}")
vendor = r.text if r.ok else None
# after
r = requests.get(f"https://api.macadress.com/v1/vendor/{mac}")
vendor = r.text if r.ok else None
Error handling: the one edit
# before: macvendors returns a JSON error body
if r.status_code == 404:
detail = r.json()["errors"]["detail"] # "Not Found"
# after: macadress returns plain text
if r.status_code == 404:
reason = r.text # "not registered" or "locally administered"
JavaScript (browser)
// CORS is open, so this runs from a page
const res = await fetch(
`https://api.macadress.com/v1/vendor/${mac}`
);
const vendor = res.ok ? await res.text() : null;
Be honest
When to stay on macvendors.com
macvendors.com is a long-running free service that has served this community well. If it works for you, there is no reason to move.
- You are already integrated, under 1 request per second, and under 1,000 a day. A migration buys you nothing here.
- You depend on its exact JSON error shape and would rather not touch that code.
- You only ever need the vendor name and never expect to want the OUI, IEEE block, country, batch lookups, or randomization analysis.
Reasons to switch: you keep hitting the 1-per-second wall, you want per-minute burst room, you want unregistered told apart from privacy-randomized, or you want a path to the keyed JSON and batch endpoints without changing providers again later.
Burst room
60 a minute, not 1 a second
A tight 1-per-second cap means a loop over a handful of addresses starts returning 429. macadress meters per minute, so a short burst clears and only sustained volume is throttled.
Randomization aware
Unregistered vs. randomized
A privacy-randomized MAC and a genuinely unknown one both look like a 404 elsewhere. Here the body says locally administered so you can tell "the OS made this up" from "not in the registry".
Room to grow
Same provider when you need more
Start on the keyless name lookup. Add a free key later for JSON with the OUI, block, and country, batch requests, or a self-hosted deployment. No second migration.
FAQ
Switching from macvendors.com
Is macadress.com a drop-in replacement for the macvendors.com API?
Nearly. Both return the vendor name as plain text from a keyless GET, so switching is a base-URL change: point at https://api.macadress.com/v1/vendor/ instead of https://api.macvendors.com/. The one behavior difference is the error body: macvendors returns JSON on a miss, macadress returns plain text (see below).
How do I migrate from api.macvendors.com?
Change the request URL from https://api.macvendors.com/<mac> to https://api.macadress.com/v1/vendor/<mac>. If your code reads the 404 JSON body ({"errors":{"detail":"Not Found"}}), switch it to check the status code and read the plain-text body instead: "not registered" or "locally administered". Nothing else needs to change: no key, same MAC formats, same 1,000-a-day free allowance.
What are the rate limits compared to macvendors.com?
macvendors allows 1 request per second and 1,000 a day with no key. macadress's keyless endpoint allows 60 requests per minute per IP and 1,000 a day per IP, so short bursts clear instead of hitting a 429. Adding a free API key replaces the daily cap with your plan's monthly quota, with the first 1,000 a day still free.
Does the macadress.com endpoint need an API key?
The name lookup, GET /v1/vendor/:mac, needs no key, exactly like macvendors. A free key is only for the JSON endpoint (GET /v1/mac/:mac, which adds the OUI, IEEE block, country, and randomization analysis), batch requests, or lifting the anonymous daily cap.
What does macadress return when the MAC address is not found?
HTTP 404 with a plain-text body: "not registered" when the prefix isn't in the IEEE registry, or "locally administered" for a privacy-randomized address. macvendors returns 404 with JSON {"errors":{"detail":"Not Found"}} and doesn't tell the two cases apart.
Can I still call it from browser JavaScript?
Yes. Every response sets Access-Control-Allow-Origin: *, so a fetch() from a web page works without a proxy.
Is there a batch equivalent?
Not on the keyless endpoint. With a free key, POST /v1/mac/batch takes up to 100 addresses per request and returns a result for each. macvendors has no batch endpoint.