MacVendors MAC Address Lookup avatar

MacVendors MAC Address Lookup

Pricing

from $2.32 / 1,000 item extracteds

Go to Apify Store
MacVendors MAC Address Lookup

MacVendors MAC Address Lookup

Resolve batches of MAC addresses and OUI prefixes to normalized manufacturer, lookup status, duplicate count, and MacVendors provenance records.

Pricing

from $2.32 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Categories

Share

Resolve batches of MAC addresses and OUI prefixes to manufacturer names with a MacVendors MAC address lookup workflow built for inventory enrichment.

Submit observed device identifiers and receive one normalized row per unique input with the OUI, manufacturer, lookup status, duplicate count, and source provenance.

What does this Actor do?

This Actor:

  • accepts full 48-bit MAC addresses and 24-bit OUI prefixes;
  • accepts colon, hyphen, dotted, and unseparated notation;
  • validates every submitted value before starting source requests;
  • normalizes values to uppercase colon-separated notation;
  • deduplicates equivalent inputs;
  • resolves manufacturers through the public MacVendors endpoint;
  • exports explicit found, not_found, or lookup_error status;
  • preserves public source links and lookup timestamps.

It does not infer device models, ownership, location, or network activity. A manufacturer assignment identifies an address block, not necessarily the current device owner.

Who is it for?

Network inventory teams

Enrich switch, DHCP, Wi-Fi, or asset inventory exports with manufacturer names.

Security operations teams

Add vendor context to observed device lists before triage or classification.

Managed service providers

Normalize MAC address batches from multiple customer systems into a repeatable dataset contract.

Data engineers

Feed manufacturer lookup results into spreadsheets, databases, BI tools, or scheduled Apify workflows.

Why use this MacVendors lookup?

Raw lookup responses are useful for one address. Recurring inventory work needs a stable batch contract.

This Actor adds:

  • strict input validation;
  • normalized addresses and OUI values;
  • input-type classification;
  • duplicate accounting;
  • bounded retries for transient failures;
  • typed dataset rows;
  • explicit provenance;
  • Apify scheduling, API, webhook, and integration support.

Input

FieldTypeRequiredDefaultDescription
addressesstring arrayYesFull MAC addresses or six-hex-digit OUI prefixes.
maxItemsintegerNo100Maximum unique values to process, from 1 to 200.

Example:

{
"addresses": [
"44:38:39:ff:ef:57",
"00-1B-63",
"F4F5.D800.0001"
],
"maxItems": 3
}

Supported address formats

The following formats are accepted:

  • 44:38:39:FF:EF:57
  • 44-38-39-FF-EF-57
  • 443839FFEF57
  • 4438.39FF.EF57
  • 44:38:39
  • 44-38-39
  • 443839

A full address must contain exactly 12 hexadecimal digits. An OUI prefix must contain exactly 6 hexadecimal digits.

The complete input batch is validated before charging or requesting MacVendors. One malformed entry fails the run so pipelines do not silently lose records.

Output fields

FieldDescription
inputOriginal submitted representation.
normalizedAddressUppercase colon-separated MAC address or OUI.
ouiFirst three normalized octets.
inputTypemac_address or oui_prefix.
manufacturerOrganization returned by MacVendors, or null.
statusfound, not_found, or lookup_error.
duplicateCountOccurrences of the normalized value in the submitted batch.
sourceMacVendors.
sourceUrlPublic lookup URL for verification.
sourceApiUrlEndpoint used by the run.
errorBounded diagnostic for exhausted request failures, otherwise null.
lookedUpAtISO 8601 completion timestamp.

Output example

This is representative of current Actor behavior:

{
"input": "44:38:39:ff:ef:57",
"normalizedAddress": "44:38:39:FF:EF:57",
"oui": "44:38:39",
"inputType": "mac_address",
"manufacturer": "Cumulus Networks, inc",
"status": "found",
"duplicateCount": 1,
"source": "MacVendors",
"sourceUrl": "https://macvendors.com/query/44%3A38%3A39%3AFF%3AEF%3A57",
"sourceApiUrl": "https://api.macvendors.com/44%3A38%3A39%3AFF%3AEF%3A57",
"error": null,
"lookedUpAt": "2026-09-04T06:40:43.724Z"
}

Getting started

  1. Open the Actor in Apify Console.
  2. Add one or more values to MAC addresses or OUI prefixes.
  3. Keep maxItems small for an initial run.
  4. Click Start.
  5. Open the default dataset to inspect normalized results.
  6. Export JSON, CSV, Excel, XML, or another supported dataset format.
  7. Save the input as a Task when you need scheduling or integrations.

How much does it cost to look up MAC address manufacturers?

Pay-per-event pricing has two components:

  • $0.0015 per run for the start event;
  • $0.003872 per completed lookup at the BRONZE tier.

A completed source response is billed under the item event. A request that exhausts all retries is exported for diagnosis without an item charge.

Approximate BRONZE examples:

Completed lookupsEstimated Actor charge
1about 0.005372 USD
10about 0.04022 USD
25about 0.0983 USD
100about 0.3887 USD

Higher subscription tiers receive the discounts shown on the Actor pricing tab. Platform compute charges and plan allowances are governed by Apify.

Batch and deduplication behavior

Equivalent notations resolve once per run.

For example, 44:38:39:ff:ef:57 and 443839FFEF57 produce one row whose duplicateCount is 2.

maxItems applies after normalization and deduplication. Input order determines which unique values are processed when the limit is smaller than the batch.

Status and failure behavior

found

MacVendors returned a non-empty manufacturer name.

not_found

The source reported no manufacturer assignment for the supplied value.

lookup_error

A transport, timeout, rate-limit, or server failure remained after bounded retries. The row contains a short error value and is not charged as an item.

The Actor retries only transient failures such as HTTP 429, HTTP 5xx, timeouts, and connection resets. It does not blindly retry malformed input.

Source limits and responsible request pacing

Requests are sequential and paced at approximately one request per second. This conservative behavior is intentional because the anonymous MacVendors service applies rate and daily usage limits.

A large batch can therefore take roughly one second per unique value, plus retry delays. The Actor limits a run to 200 unique lookups.

If a source quota is exhausted, wait for it to reset and rerun the Task. Increasing Actor memory will not bypass source limits.

Network inventory enrichment workflow

A repeatable workflow can be:

  1. Export distinct MAC addresses from an authorized network inventory.
  2. Submit them through an Actor Task.
  3. Join output using normalizedAddress or oui.
  4. Keep status and lookedUpAt for auditability.
  5. Schedule a later Task run when fresh source assignments are needed.

The Actor reports current lookup results. It does not maintain historical changes or send alerts by itself.

Export and integrations

Use the default Apify dataset with:

  • JSON for applications;
  • CSV or Excel for inventory analysts;
  • webhooks for pipeline completion;
  • Make or Zapier for no-code workflows;
  • Google Sheets for review queues;
  • the Apify API for scheduled enrichment jobs.

Every run has its own default dataset, so outputs from unrelated runs are not mixed.

API usage with cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~mac-address-oui-manufacturer-lookup/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"addresses":["44:38:39:ff:ef:57","00-1B-63"],"maxItems":2}'

To wait for completion and retrieve dataset items, use the Apify run and dataset endpoints returned by the run response.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/mac-address-oui-manufacturer-lookup').call({
addresses: ['44:38:39:ff:ef:57', '00-1B-63'],
maxItems: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/mac-address-oui-manufacturer-lookup').call(
run_input={
'addresses': ['44:38:39:ff:ef:57', '00-1B-63'],
'maxItems': 2,
}
)
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use through Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/mac-address-oui-manufacturer-lookup"

Use the same configuration in Claude Desktop, Cursor, or VS Code:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/mac-address-oui-manufacturer-lookup"
}
}
}

Example prompts:

  • “Resolve these MAC addresses to manufacturers and return a compact table.”
  • “Normalize this OUI list and identify which lookups were not found.”
  • “Enrich this authorized network inventory and preserve provenance URLs.”

Accuracy and interpretation

Manufacturer assignments can change when address blocks are transferred or source data is updated.

Randomized or locally administered MAC addresses may not identify the device manufacturer. The Actor does not claim that an OUI proves a device model, person, owner, or physical location.

Preserve status, sourceUrl, and lookedUpAt when results support operational decisions.

Use the Actor only with identifiers you are authorized to process. Follow your organization's security and privacy policies, MacVendors terms, source rate limits, and applicable law.

MAC addresses can be device identifiers in some contexts. Avoid publishing inventories or combining results into invasive tracking profiles.

This Actor accesses anonymously reachable public lookup responses. It does not bypass authentication or CAPTCHA controls.

Troubleshooting

Why did my input fail before any output?

Check that every entry contains exactly 6 or 12 hexadecimal digits. Remove labels, comments, or unsupported separators.

Why is manufacturer null?

Inspect status. not_found means the source has no assignment; lookup_error means a transient source or network failure exhausted retries.

Why is my run slow?

The Actor deliberately performs about one request per second to respect source limits. Deduplicate the input and use maxItems to bound test runs.

Why are fewer rows returned than submitted values?

Equivalent values are deduplicated, and maxItems limits unique normalized lookups. Use duplicateCount to audit repeated inputs.

FAQ

Can I submit only an OUI?

Yes. Supply six hexadecimal digits such as 44:38:39 or 443839.

Does this identify a device model?

No. It resolves a manufacturer organization associated with the address prefix.

Does it use a proxy?

No. The Actor calls the anonymous public endpoint directly and does not enable an automatic paid proxy fallback.

Can I schedule recurring runs?

Yes. Save the input as an Apify Task and attach a schedule. Each run returns current source data; change comparison and alerting belong in your downstream workflow.

Are duplicate values charged twice?

No. Equivalent inputs are normalized and resolved once per run.

Choose this Actor when the input is specifically a MAC address or OUI and the required output is the MacVendors manufacturer assignment.